Redis 5种数据结构常用命令

Redis支持五种数据结构的key-value,分别是string字符串,linklist链表,set无序集合,order set有序集合,还有hash哈希数据类型等

Redis字符串String类型的操作:

1.   set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]

注:ex和px不能同时使用

nx : 此参数指定set时key不存在时在成功执行操作

xx:此参数指定set时key存在时在成功执行操作

2. mset multi set , 一次性设置多个键值

mset key1 val1 key2 val2 .......

3.get key 获取指定key的值

4.mget key1 key2 key3 获取多个key的值

5.setrange key offset value 

把字符串的offset偏移字节,改成value,注意: 如果偏移量>字符长度, 该字符自动补0x00

6.append key value

往指定key的value中追加字符串

7.getrange key start stop

        获取字符串中 [start, stop]范围的值
注意: 对于字符串的下标,左数从0开始,右数从-1开始
(),比如,当stop为-2时,即右边倒数第二个字符

8.getset key newvalue

作用: 获取并返回旧值,设置新值

9.incr key

自增key的值,并且此值必须是数字

10. decr key

自减key的值,并且此值必须是数字

11.incrby key value

在此值的基础上加value。

12.decrby key value

在此值的基础上减value

13.incrbyfloat key value

在此值的基础上添加一个浮点值

Redis链表link结构的操作

1.lpush key value

插入链表头部

2.rpush key value

插入链表尾部

3.lrange key start stop

获取链表,从【start - stop】,start是从0开始算起,stop是从-1开始算起。

4.rpop key

从指定key的链表尾部取出value,并移除value。

5.lpop key

指定key的链表部取出value,并移除value。

· 6.lrem key count value

删除指定key的链表的指定的value,并且可以指定删除个数

7.ltrim key start stop

裁剪,剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key

8.lindex key index

通过索引获取value

9.llen key

计算链接表的元素个数

10.linsert key after|before search value

  在key链表中寻找’search’,并在search值之前|之后,.插入value

  注: 一旦找到一个search后,命令就结束了,因此不会插入多个value  

  11.rpoplpush source dest

把source的尾部拿出,放在dest的头部,并返回 该单元值

12.brpop ,blpop key timeout

等待弹出key的尾/头元素, Timeout为等待超时时间,如果timeout为0,则一直等待   

为方便演示,开启两个终端,一个用于插入链表,一个用于等待取出链表


Redis集合set 相关命令

集合set的性质: 唯一性,无序性,确定性

1.sadd key value1 value2

往指定key的集合中添加元素

2.smembers key

查询指定key的集合set的所有元素


3. srandmember key

随机返回指定key集合的任意元素

4.spop key [count]

返回并删除集合中key中count个随机元素


5.srem value1 value2

删除集合中集为 value1 value2的元素
返回值: 忽略不存在的元素后,真正删除掉的元素的个数

6.sismember key value

判断value是否在key集合中
是返回1,否返回0


7.scard key

查询指定key集合元素的个数

8.smove source dest value

把source中的value删除,并添加到dest集合中


9.sinter key1 key2 key3

获取 集合key1 集合key2 集合key3三个集合的交集结果

10.suion key1 key2.. Keyn

获取 集合key1 集合key2 集合key3三个集合的并集结果

11.sdiff key1 key2 key3

获取 集合key1 集合key2 集合key3三个集合的差集结果

12.sinterstore dest key1 key2 key3

求出key1 key2 key3 三个集合中的交集,并赋给dest



Redis有序集合order set命令

1.zadd key score1 value1 score2 value2 ..

添加元素,score的值是作为排序的依据

2.zrank key member

查询member的排名(升续 0名开始)


3.zrevrank key memeber

倒序排名

4.ZRANGE key start stop [WITHSCORES]

把集合排序后,按升序返回名次[start,stop]的元素,Withscores 是把score也打印出来

5.zrevrange key start stop

把集合排序后,按降序返回名次[start,stop]的元素,Withscores 是把score也打印出来


6.zrangebyscore key min max [withscores] limit offset N

集合(升续)排序后,取score在[min,max]内的元素,并跳过 offset个, 取出N个


7.zrem key value1 value2 ..

删除集合中的元素

8.zremrangebyscore key min max

按照socre来删除元素,删除score在[min,max]之间的

9.zremrangebyrank key start end

按排名删除元素,删除名次在[start,end]之间的


10.zcard key

返回元素个数

11.zcount key min max

返回[min,max] 区间内元素的数量,此min和max值指的是score。


12.zinterstore destination numkeys key1 [key2 ...]   [WEIGHTS weight [weight ...]]   [AGGREGATE SUM|MIN|MAX]

求key1,key2的交集,key1,key2的权重分别是 weight1,weight2
聚合方法用: sum |min|max
聚合的结果,保存在dest集合内


Hash 哈希数据类型相关命令

1.hset key field value

把key中 filed域的值设为value,如果没有field域,直接添加,如果有,则覆盖原field域的值

2.hget key field

返回key中field域的值

3.hgetall key

返回key中,所有域与其值

4.hlen key

返回key中元素的数量

5.hmset key field1 value1 [field2 value2 field3 value3 ......fieldn valuen]

批量添加

6.hmget key field1 field2 fieldN

返回key中field1 field2 fieldN域的值


7.hdel key field

删除key中 field域

8.hexists key field

判断key中有没有field域,存在返回1,否咋返回0


9.hinrby key field value

是把key中的field域的值增长整型值value

10. hinrbyfloat key field value

是把key中的field域的值增长浮点值value


11.hkeys key

返回key中所有的field

12.hvals key

返回key中所有的value







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值