Redis开发与运维--书籍学习笔记

redis的五种数据类型

 

类型
内部编码
常用命令
应用场景
string
int、embstr、raw
int:8个字节的长整形
embstr:小于等于39字节的字符串
raw:大于39字节的字符串
set、exists、setnx(已存在则失败)  
获取:get
批量设置值:mset  批量获取mget
计数:incr自增、decr自检、incrby指定自增、decrby指定自减
缓存功能、计数、共享Session、限速(限制手机验证码获取时间)
hash
hashtable、ziplist
当field个数较少并且没有大的value是内部编码是ziplist
如果value大于64字节或者fueld个数超过512个则使用hashtable
hset、hget、
删除hdel会删除一个或多个field
计算field的个数 hlen key
批量设置或获取 hmset、 hmget  
判断是否存在hexists key field
获取所有field :hkeys key
获取value:hvals key
获取所有的field-value:hgetall key
hincrby key field、 hincrbyfloat key field
计算value的字符串长度hstrlen key field
 
存放用户信息
list
ziplist、linkedlist
 
ziplist列表元素个数小于512默认配置,同时列表中每个元素的值都小于64字节(默认配置,可配置其他值)
当列表无法满足zipliest的条件时,则选择使用linkedlist
 
 
左边插入lpush、右边插入lpush
某个元素前面后后边插入linset key before|after piovt value
获取指定范围内的元素列表 lrange key start end
获取指定下标的lindex key index
获取列表长度 llen key
删除;左弹 lpop key、右弹rpop key  、删除指定元素 lrem key count value (count 正数从左往右  负数从右往左  0 删除所有)
l按照索引范围修剪列表 ltrim key start end  (其实就是截取掉)
修改lset key index newValue
阻塞 blpop key 【key...】timeout
brpop key [key...] timeout    (timeout:阻塞时间单位是秒)
 
 
消息队列、文章列表
set
intset、hashtable
元素为整数并且较少(默认512个)intset
如果超过512个或者元素不为整数则是hashtable
sadd key element [elelment…]
删除 srem key element
计算元素格式 scard key
判断元素是否在集合中 sismember key element
随机从集合中返回指定个数元素 srandmember key 【count】
从集合中随机弹出元素 spop key
获取所有元素 smembers key
集合间操作:
   1、多个集合的交集 sinter key 【key...】
   2、多个集合的并集 sunion key 【key...】
   3、多个集合的差集sdiff key 【key...】
   4、将交集、并集、差集结果保存:
          sintertore destination key 【key...】
          Sunionstore destination key [key...]
          Sdiffstore destination key [key...]
 
标签、
zset
ziplist、skiplist
当有序集合元素个数小于128个(默认配置)并且每个元素的值都小于64字节时则为ziplist
如果超过128或某个元素大于64字节则内部编码会变为skiplist
添加成员 zadd key score member 【score member】
计算成员个数 zcard key
计算某个成员分数zscore key member
计算成员排名 低到高zrank key member   |  zrevrank key member 高到低
删除成员zrem key member 【member...】
增加成员的分数 zincrby key increment member  例:zincrby user:ranking 9 tom. 给tom加9分
返回指定范围的成员 zrange | zrevrange  key start end 【withscores】备注:是否增加withscores为是否返回分数
返回指定分数范围的成员 zrangebyscore | zrevrangebyscore key min max [withscores] [limit offset count]
返回指定分数范围成员个数
zcount  key min max
删除指定排名内的升序元素 zremrangebyrank key start end
删除指定分数范围的成员 zremrangebyscore key min max
集合间操作:
     1、交集 zinterstore destination numkeys key [key…] [weights weight [weight…]]    [aggregate sum|min|max]
     2、并集  zunionstore destination numkeys key [key…] [weights weight [weight…]]    [aggregate sum|min|max]
   详情见56页
典型的使用场景为排行榜系统,例如用户点赞数
 

 

posted @ 2019-10-12 12:01  不负_时光  阅读(189)  评论(0编辑  收藏  举报