zoukankan      html  css  js  c++  java
  • Redis

    Redis 存储类型、事务基本操作、乐观锁、持久化、订阅发布、缓存穿透和雪崩。

    Redis 存储类型

    String、[SET,SETNX,SETEX,STRLEN,SETRANGE,GETRANGE]

    List、[LPUSH,RPUSH,LPOP,RPOP]

    Set、[SADD,SPOP,]

    Hash、[HSET,HGET,HKEYS,HVALS]

    Zset、[ZADD,ZSCORE(判断key是否存在),ZINCRBY,]

    Geospatial、[GEOADD,GEOPOS,GEODIST]

    Hyperloglog、[PFADD,PFCOUNT,PFMERGE]

    Bitmap、[SETBIT,GETBIT,BITPOS,BITOP]

    事务基本操作

    开启事务[multi]

    命令入队

    执行事务[exec]

    放弃事务[discard]

    redis事务不保证原子性,语法错误会失败,运行错误不会失败。

    乐观锁

    [watch]监视器实现乐观锁

    持久化、指定时间里,讲内存中的数据集体写入磁盘,创建快照。fork一个子进程来实现。 默认RDB 一般不修改,缺点就是最后一次肯能丢失。比AOF更加高效

     RDB
      save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
      save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
      save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。
     AOF
      appendfsync always #每次有数据修改发生时都会写入AOF文件。
      appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
      appendfsync no #从不同步。高效但是数据不会被持久化。

    订阅发布

    [psubscribe] 订阅一个或多个给定模式的频道

    [pubsub] subcommand 查看订阅与发布状态

    [publish] channel message 讲信息发送到指定频道

    [punsubscribe] 退订所有给定模式的频道

    [subscribe] 订阅给定的一个或多个频道

    [unsubscribe] 退订给定频道

    [info] replication 查看redis状态

     

    集群搭建、主从复制、哨兵模式、

    1、单机版

     

    2、主从复制

     

    3、哨兵模式

     

    4、

    缓存穿透和雪崩

    1、缓存穿透(读不到数据,一直读)

    布隆过滤器。

    redis中存入空的缓存。

    2、缓存击穿(对某一个key数据 读取量高,缓存过期,空档期直接击穿底层数据库)

    上层对于查询key的时候可以单线程查询。

    热点数据不过期

     

    Redis的分布式锁??

       分布式锁,setnx

      SET key value [EX seconds] [PX milliseconds] [NX|XX]

     

    3、缓存雪崩 双十一:

    停掉一些服务(保证主要服务可用),多增几台redis(异地多活)

    限流降级

    数据预热

     

    Redis 过期策略及内存淘汰机制

    过期策略

     过期策略:-> 定期删除+惰性删除

    内存淘汰机制

    volatile-lru: 从已设置过期时间的数据集( server.db[i].expires ) 中挑选最近最少使用的数据淘汰。

    volatile-ttl: 从已设置过期时间的数据集( server.db[i].expires ) 中挑选将要过期的数据淘汰。

    volatile-random: 从已设置过期时间的数据集( server.db[i].expires ) 中任意选择数据淘汰。

    allkey-lru: 从数据集( server.db[i].dict ) 中挑选最近最少使用的数据淘汰。

    allkey-ramdom: 从数据集( server.db[i].dict ) 中任意选择数据淘汰。

    no-enviction(驱逐): 禁止驱逐数据。

     

  • 相关阅读:
    「实战」攻防中钓鱼上线MAC终端
    JAVA审计SQL注入
    使用Netcat实现通信和反弹Shell
    通过Mssql提权的几种姿势
    第三方提权之ServU提权
    使用LCX进行内网端口转发
    Proxifier/ProxyChains+reGeorg组合进行内网代理
    通过Mysql提权的几种姿势
    java:文件与IO
    java:常用类库api
  • 原文地址:https://www.cnblogs.com/kutsu/p/13709538.html
Copyright © 2011-2022 走看看