Redis思维导图分享(包含详细知识点)

思维导图地址:

Redis思维导图,点击跳转

思维导图内容

Redis

  • Redis基础
    • Redis基本命令
      • 遍历键
        • keys:全量遍历键,用来列出所有满足特定正则字符串规则的key,当redis数据量比较大时,性能比较差(单线程)
        • scan:渐进式遍历键不能保证完整的遍历出来所有的键
    • 基本数据结构
      • String
        • 常用操作
          • SET  key  value    //存入字符串键值对
          • MSET  key  value [key value ...]  //批量存储字符串键值对
          • SETNX  key  value   //存入一个不存在的字符串键值对
          • GET  key    //获取一个字符串键值
          • MGET  key  [key ...]   //批量获取字符串键值
          • DEL  key  [key ...]   //删除一个键
          • EXPIRE  key  seconds   //设置一个键的过期时间(秒)
        • 原子加减
          • INCR  key    //将key中储存的数字值加1
          • DECR  key    //将key中储存的数字值减1
          • INCRBY  key  increment   //将key所储存的值加上increment
          • DECRBY  key  decrement  //将key所储存的值减去decrement
        • 应用场景
          • 单值缓存
          • 对象缓存
          • 分布式锁
            • SETNX  product:10001  true   //返回1代表获取锁成功
            • SETNX  product:10001  true   //返回0代表获取锁失败
            • 。。。执行业务操作
            • DEL  product:10001   //执行完业务释放锁
            • SET product:10001 true  ex  10  nx //防止程序意外终止导致死锁
          • 计数器
            • INCR article:readcount:{ 文章id}  
            • GET article:readcount:{ 文章id}
          • Web集群session共享:spring session + redis实现session共享
          • 分布式系统全局序列号 :INCRBY  orderId  1000  //redis批量生成序列号提升性能
      • Hash 哈希
        • 常用操作
          • HSET  key  field  value    //存储一个哈希表key的键值HSETNX  key  field  value   //存储一个不存在的哈希表key的键值HMSET  key  field  value [field value ...]  //在一个哈希表key中存储多个键值对HGET  key  field     //获取哈希表key对应的field键值HMGET  key  field  [field ...]   //批量获取哈希表key中多个field键值HDEL  key  field  [field ...]   //删除哈希表key中的field键值HLEN  key    //返回哈希表key中field的数量HGETALL  key    //返回哈希表key中所有的键值HINCRBY  key  field  increment   //为哈希表key中field键的值加上增量increment
        • 应用场景
          • 对象缓存
          • 电商购物车
          • 1)以用户id为key
          • 2)商品id为field
          • 3)商品数量为value
          • 购物车操作
          • 添加商品hset cart:1001 10088 1
          • 增加数量hincrby cart:1001 10088 1
          • 商品总数hlen cart:1001
          • 删除商品hdel cart:1001 10088
          • 获取购物车所有商品hgetall cart:1001
        • 优点
          • 1)同类数据归类整合储存,方便数据管理
          • 2)相比string操作消耗内存与cpu更小
          • 3)相比string储存更节省空间
        • 缺点
          • 1)过期功能不能使用在field上,只能用在key上2)Redis集群架构下不适合大规模使用
      • List列表
        • 常用操作
          • LPUSH  key  value [value ...]   //将一个或多个值value插入到key列表的表头(最左边)
          • RPUSH  key  value [value ...]   //将一个或多个值value插入到key列表的表尾(最右边)
          • LPOP  key   //移除并返回key列表的头元素
          • RPOP  key   //移除并返回key列表的尾元素
          • LRANGE  key  start  stop  //返回列表key中指定区间内的元素,区间以偏移量start和stop指定
          • BLPOP  key  [key ...]  timeout //从key列表表头弹出一个元素,若列表中没有元素,阻塞等待     timeout秒,如果timeout=0,一直阻塞等待
          • BRPOP  key  [key ...]  timeout  //从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待     timeout秒,如果timeout=0,一直阻塞等待
        • 应用场景
          • 常用数据结构
            • Stack(栈) = LPUSH + LPOP
            • Queue(队列)= LPUSH + RPOP
            • Blocking MQ(阻塞队列)= LPUSH + BRPOP
          • 微博消息和微信公号消息
          • 诸葛老师关注了MacTalk,备胎说车等大V
          • 1)MacTalk发微博,消息ID为10018
          • LPUSH  msg:{ 诸葛老师-ID}  10018

你可能感兴趣的:(redis,数据库,database)