Redis常用类型及使用场景

常用类型

一、String

1、最常用 set key value  、get key

2、同时设置、获取多个键值  MSET key value [key value....]

                                          MGET key [key......]

3、数值增减   

递增数字, INCR key

增加指定的整数 INCRBY key increment     

递减数值   DECR key

减少指定的整数 DECRBY key decrement

 4、获取字符串长度  STRLEN key

5、分布式锁  setnx key value

                       set key value [EX seconds][PX milliseconds] [NX][XX]

6、应用场景   商品编号、订单号采用INCR命令生成

                        是否喜欢的文章

二、Hash

redis hash ====>Map<String,Map<Object,Object>>

一次设置一个字段值  HSET key field value 

一次获取一个字段值   HGET key field 

一次设置多个字段值   HMSET key field value [field value...]

一次获取多个字段值    HMGET key field [field]

获取所有字段值  hgetall key 

获取某个key内的全部数量   hlen

删除一个key  hdel 

应用场景   购物车早期,当前小中厂可用

三、List  

双向链表, 向列表左边添加元素 LPUSH  key value [value]

向列表右边添加元素 RPUSH key value [value]

查看列表  LRANGE key start stop 

获取列表中元素的个数   LLEN  key

应用场景    微信文章订阅公众号

四、Set   无序无重复  重点****

添加元素  SADD key member [member...]

删除元素  SREM key member [member...]

获取集合中的所有元素  SMEMBERS  key   遍历这个set

判断元素是否在集合中 SISMEMBER key member

获取集合中的元素个数  SCARD key 

从集合中随机弹出一个元素,元素不删除 SRANDMEMBER key [数字]

从集合中随机弹出一个元素,出一个删一个,SPOP key[数字]

集合运算      集合的差集运算A-B, 属于A但不属于B的元素构成的集合  SDIFF key [key]

                    集合的交易运算A交B,属于A 同时也属于B的共同拥有的元素构成的集合 SINTER key [key....]

                    集合的并集运算A并B,属于A或者属于B的元素合并后的集合 SUNION key [key.....]

应用场景  利用在社交平台,抽奖的时候用 SRANDMEMBER key ,抽出几个,SPOP是抽出后删除。新增点赞 加一个 就用 sadd  pub:msgID 点赞用户ID1  点赞用户ID2。取消点赞 ,srem pub:msgID 点赞用户ID 。展现所有点在过的用户   SMEMBERS  pub:msgID。点赞用户数统计 SCARD pub:msgID  。判断某个用户是否点过赞  SISMEMBER pub:msgID 用户ID

微博好友关注社交关系 用集合的命令

sadd  s1 1  2   3  4   5    sadd s2 3   4   5   6   7  

SINTER  s1  s2    就是取s1 和s2的交集,假设即是关注了s1 又是关注了s2的人

五、Zset  向有序集合中加入一个元素和该元素的分数

添加元素  ZADD key score member [score member]

按照元素 分数从小到大的顺序 ,返回索引从start 到stop之间的所有元素  ZRANGE key start stop

获取元素的分数  ZSCORE key member 

删除元素  ZREM key member [member]

获取指定分数范围的元素   ZRANGEBYSCORE key min max [WITHSCORE]

增加某个元素的分数  ZINCRBY key increment member 

获取集合中元素的数量    ZCARD key

获取指定分数范围内的元素个数   ZCOUNT key min max 

应用场景 ,根据商品销售对商品进行排序显示 

                  例如 热搜

商品编号1001的销量是9,商品编号1002的销量是15

商品编号1001销量是9,1002销量是15   zadd goods:sellsort  9 1001 15 1002  

1002销量又增加了2个           zincrby goods:sellsort 2 1002

商品销量前10名          zrange goods:sellsort 0 10 withscores

上一篇:JAVA发红包案例(主要学习对继承的运用)


下一篇:redis专题六:redis数据类型之sorted_set