0
点赞
收藏
分享

微信扫一扫

Linux服务器开发,Redis相关命令详解及其原理

沪钢木子 2022-02-11 阅读 58

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习
MySql采用B+树组织数据结构,而redis采用dictionary方式组织数据结构。
在这里插入图片描述

命令

  • lpush liststr Mark Darren King King
  • lrange liststr 0 -1 // 表示从第一个到最后一个
  • set sayid 1000
  • incr sayid
  • incrby key 100
  • decrby key 100
  • setnx feng - //不存在设置成功
  • object encoding Mark
  • setbit xxxx 9 1

应用

  • 记录朋友圈点赞数,评论数和点击数。(hash)
  • 记录朋友圈说说列表(排序),便于列表页展示。(hash)
  • 记录文章的标题,摘要,坐着和封面,用于列表页展示。(hash)
  • 记录朋友圈的点赞用户ID列表,评论ID列表,用于显示和去重技术。(zset)
  • 缓存热点数据,减少数据库压力。(hash)
  • 如果朋友圈说说ID是整数ID,可以使用redis来分配朋友圈说说ID(计数器)。(string)
  • 通过集合(set) 的叫并查集运算来实现记录好友关系。(set)

在这里插入图片描述

string

set role:10001 ‘{[name]=“mark”,[age]=‘18’,[sex]=male}’
//极少改变
//role:10001:recharge:10001

分布式锁

  • redis实现的是非公平锁,阻塞等待
  • setnx lock 1
  • set lock uuid nx ex 30
  • del lock

位运算

  • setbit sign:10001:202106 1 1
  • bitcount sign:10001:202106
  • getbit sign:10001:202106 2

list

  • LPUSH key value value value
  • LPOP key
  • LRANGE key start end
  • LREM key count value
  • BRPOP key timeout //关键特性,空的就阻塞在这里 0为永久阻塞
  • LTRIM say 0 49 //拿到最左面的50个
  • LRANGE say 0 49

hash

  • HINCRBY key field increment
  • HLEN key

set

  • 存储时无序,交并差需要进行排序
  • SADD key value1 value2 value3
  • SMENBERS key
  • SINSMENBER key value1
  • SRANDMEMBER key 2 //随机获取2个
  • SPOP key 1 //随机踢出一个
  • SIDFF key
  • SINTER key
  • SUNION key

zset

  • ZADD rank 100 MARK
  • ZINCRBY rank 20 MARK
  • ZCARD rank
  • ZRANGE rank 80 100 byscore
  • ZRANGE rank 80 100 byscore withscore
  • ZREVRANGE rank 80 100 byscore withscore
    典型应用:排行榜
举报

相关推荐

0 条评论