Redis基础(2)

1.字符串类型

1)命令

                   a.赋值与取值:

                            SETKEY VALUE

                            GETKEY

                   b.递增数字:

                            INCR

                   c.最佳实践:

                            Redis对键的命名: 对象类型:对象ID:对象属性 user:1:friends

                   d.其他命令:

                            增加指定的整数 INCRBY key increment // increment为每次增加的数量

                            减少指定的整数 DECRBY key increment // increment为每次减少的数量

                            增加指定的浮点数 INCRBYFLOAT key increment // increment为每次增加的数量

                            向尾部追加 APPEND key value // 向键值的末尾追加value,若键不存在,设置键值为value

                            获取字符串长度 STRLEN key

                            同时获得/设置多个键值 MGET key [key…]   MSET key value [key value …]

                            位操作

GETBIT key offset

                                SETBITkey offset value

BITCOUNT key [start] [end]

BITOP operation destkey key [key …]


2.散列类型

      1)命令

                   a.赋值与取值

                            HSETkey field value

                            HSETkey field

                            HMSETkey field value [field value …]

                            HMGETkey field[field…]

                            HGETALLkey 获取键中所有字段和字段值却不知道键中有哪些字段

                   b.判断字段是否存在

                            HEXISTSkey field

                   c.当字段不存在时赋值

                            HSETNXkey field value

                   d.增加数字

                            HINCRBYkey field increment

                   e.删除字段

                            HDELkey field [field…]

      2)其他命令

                   a.HKEYSkey 只获取字段名

                   b.HVALSkey 只获取字段值

                   c.HLENkey 获取字段数量

 

3.列表类型

      1) 介绍

                   列表内部使用“双向链表”实现,最多可容纳232-1个元素

                   应用场景:

                            社交网站的新鲜事

                            记录日志

      2) 命令

                   a.向列表两端增加元素

                            LPUSHkey value [value…] 向列表左边增加元素,返回增加后列表长度

                            RPUSHkey value [value…] 向列表右边增加元素,返回增加后列表长度

                   b.从列表两端弹出元素

                            LPOPkey 从列表左边弹出一个元素 返回被移除的元素值

                            RPOPkey从列表左边弹出一个元素 返回被移除的元素值

                   c.获取列表中元素的个数

                            LLENkey

                   d.获取列表片段

                            LRANGEkey start stop 返回索引从start到stop之间的所有元素(包括两端的元素) Redis的起始索引为0

                            LRANGE支持负索引,表示从右边开始计算序数,-1表示最右边第一个元素

                            注:LRANGE numbers 0 -1 获取列表中所有元素;若start索引位置比stop索引位置靠后,好返回空列表

                   e.删除列表中指定的键

                            LREMkey count value // 删除列表中前count个值为value的元素,返回的是删除的个数

                   当count >0,LREM从列表左边开始删除前count个值为value的元素

                   当count <0,LREM从列表右边开始删除前count个值为value的元素

                   当count=0,LREM删除所有值为value的元素

 

       3)其他命令

                   a.LINDEXkey index // 返回指定索引的元素,从0开始,index<0,,从右边开始计算索引

                   b.LSETkey index value // 将index元素的赋值为value

                   c.LTRIMkey start end // 删除指定索引范围之外的所有元素

                   d.LINSERTkey BEFORE|AFTER pivot value //向列表中插入元素

                            首先在列表中从左到右查找值为pivot的值,然后根据第二个参数是BEFORE还是AFTER来决定将value插入到该元素的前面还是后面.

                   e.RPOPPUSHsource destination // 将元素从一个列表转移到另一个列表

                            应用场景:网站监控系统:使用队列存储网址,监控程序不断地RPOPLPUSH命令循环取出一个网址来测试可用性,系统易扩展


4.集合类型

       1) 介绍

                   无序、唯一,使用值为空的散列表实现的

      2) 命令

                   SADDkey member [member …] //添加元素

                   SREMkey member [member …] //删除元素

                   SMEMBERSkey // 获得集合中的所有元素

                   SISMEMBER// 判断元素是否在集合中

                   集合间的运算:

                            SDIFFkey [key …]  //对多个集合进行差集操作,支持同时传入多个键

                            SINTERkey [key …] //对多个集合执行交集,支持传入多个键

                            SUNIONkey [key …] //对多个集合执行并集,支持传入多个键

      3) 其他命令

                   SCARDkey 获得集合中元素个数

                   进行集合运算并将结果存储:

                            SIFFSTOREdestionation key[key …] // 与SDIFF一样,不会直接返回运算结果,将结果存储在destionation中

                            SINTERSTOREdestionation key [key …] //用于需要进行多步集合运算的场景

                            SUNIONSTOREdestionation key [key …]

                   SRANDMEMBERkey [count] 随机获得集合中的元素

                            Count> 0,随机从集合里获得count个不重复的元素

                            Count<0,随机从集合里获得|count|个元素,可能相同

5.有序集合类型

       1) 介绍

                   无序、唯一,使用值为空的散列表实现的

 

       2) 与列表类型的区别

                   a.列表是通过链表实现的,获取两端的数据极快,适合”新鲜事”、”日志”等很少访问中间元素的应用

                   b.有序集合类型是使用散列表和跳跃表实现的,位于中间的数据访问也很快

                   c.列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)

                   d.有序集合比列表类型更耗费内存

      3) 命令

                   a.ZADDkey score member [score member …] //向有序集合中加入一个元素和该元素的分数,如果元素已经存在,则会使用新的分数替换原有的分数

                   注: 分数可以是整数,也可以是双精度浮点数+inf 正无穷 –inf 负无穷

                   ZSCOREkey member // 获得元素的分数

                   b.ZRANGEkey start stop [WITHSCORES] // 按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端元素);[WITHSCORES]同时获取到分数

                   c.ZREVRANGEkey start stop [WITHSCORES]

                   注:redis按照字典顺序排列这些元素

                   d.ZRANGEBYSCOREkey min max [WITHSCORES] [LIMIT offset count] // 获得指定分数范围的元素;按照元素分数从小到大的顺序返回分数在min和max之间的元素.如果不希望包含端点值,可以在分数前加上”(”;支持无穷大和无穷小

                   e.ZINCRBYkey increment member // 增加某个元素的分数

                   注:如果指定的元素不存在,redis执行命令之前会先建立它并将它的分数赋为0再执行操作

4) 其他命令

a.      ZCARD key //获得集合中元素的数量

b.      ZCOUNT key min max // 获得指定分数范围内的元素个数

c.      ZREM key member [member…] // 删除一个或多个元素

d.      ZREMRANGEBYRANK key start stop// 按照排名范围删除元素

e.      ZREMRANGEBYSCORE key min max //按照分数范围删除元素

f.        ZRANK key member // 获得元素的排名按元素分数从小到大的顺序获得指定元素的排名

ZREVRANK keymember // 反向

g.      ZINTERSTORE destination numkeyskey [key …] [WEIGHTS weight [weight]] [AGGREGATE SUM|MIN|MAX]

// 用来计算多个有序集合的交集并将结果存储在destination键中,键中元素的分数由AGGREGATE参数决定;可以通过WEIGHTS参数设置每个集合的权重,每集合在参与计算时元素的分数会被乘上该集合的权重

ZUNIONSTORE计算集合间的并集




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值