Redis研究-3.6 Redis 5种类型的基本使用2

ε祈祈猫儿з 提交于 2020-02-29 13:31:10

1.字符串

在Redis中,Redis将字符串当做三种类型来对待,一种是字节串,一种是整数,最后一种是浮点数。因此,针对不同的类型,Redis也有不同的操作,特别是针对后面两种类型,涉及到类型转换的时候,Redis会自动处理。

** 1.1 整数类型操作**

    _1.1.1 incr_ 
        他的作用是在指定的key上进行加1操作特别的,如果在Redis中不存在这个key,那么,先在Redis中创建这个key,然后再执行加1操作。

操作: get redis_int 结果: (nil)

操作: incr redis_int 结果: (integer) 1

_1.1.2 incrby _
    他的作用是在指定的key上执行加法操作。

操作:incrby redis_int 2
结果:(integer) 4
操作:get redis_int
结果:"4"

_1.1.3 decr_
    他的作用和incr相反。

操作:decr redis_int
结果:(integer) 3
操作:get redis_int
结果:"3"

操作:get redis_an
结果:(nil)
操作:decr redis_an
结果:(integer) -1


1.1.4 decrby
    他的作用和incrby相反。这里就不举例啦。

1.2 字节串

_1.2.1 append_
    他的作用是在指定的key的尾部添加指定的子串。如果指定的key不存在,那么,先创建这个key,然后再进行添加操作。

操作:get redis_str
结果:(nil)
操作:append redis_str "str"
结果:(integer) 3
操作:get redis_str
结果:"str"
操作:ppend redis_str ",str"
结果:(integer) 9
操作:get redis_str
结果:"str\xef\xbc\x8cstr"





 _1.2.2 getrange_

    他的作用是在指定的key上,获取在[start,end]指定范围的字串。如果在Redis中不存在这个key,那么将返回一个空的字串。
操作:getrange ssss 0 100
结果:""
操作:getrange redis_str 0 5
结果:"str\xef\xbc\x8c"


_1.2.3 setrange_
    他的作用是在指定的key上,从指定的start开始,将这个串设置为指定的值。
操作:get redis_str
结果:"str\xef\xbc\x8cstr"
操作:setrange redis_str 0 5
结果:(integer) 9
操作:setrange redis_str 0 ssssssss
结果:(integer) 9
操作:get redis_str
结果:"ssssssssr"


_1.2.4 setbit_
    他的作用是将指定的key看作是一个二进制串,然后将指定的位置设置为响应的值。
操作:get redis_str
结果:"ssssssssr"
操作:setbit redis_str 3 2
结果:(error) ERR bit is not an integer or out of range
操作:setbit redis_str 3 1
结果:(integer) 1
操作:getbit redis_str 3
结果:(integer) 1
操作:setbit redis_str 3 0
结果:(integer) 1
操作:getbit redis_str 3
结果:(integer) 0

_1.2.5 getbit_
    他的作用是将指定的key看做是一个二进制串,然后返回指定的位的二进制值。

2.列表

_2.1 ltrim_
    他的作用是对指定的列表进行裁剪,只保留在[start,end]之间的元素组成的列表。
操作:lrange list_ch2 0 -1
结果:
1) "item6"
2) "item5"
3) "item4"
4) "item3"
5) "item12"
6) "item1"
7) "item"
操作:ltrim list_ch2 1 4
结果:OK
操作:lrange list_ch2 0 -1
结果:
1) "item5"
2) "item4"
3) "item3"
4) "item12"


_2.2 BLPOP_
    从一个非空的列表的左端返回一个元素,或者等待一段时间后,有元素可返回的元素为止。
操作:lrange list_ch3 0 -1
结果:
1) "item6"
2) "item5"
3) "item4"
4) "item3"
5) "item2"
6) "item1"
7) "item"
操作:BLPOP list_ch3
结果:(error) ERR wrong number of arguments for 'blpop' command
操作:BLPOP list_ch3 22
结果:
1) "list_ch3"
2) "item6"

_2.3 BRPOP_
    他的作用和BLPOP的作用相同,但是,方向是相反的。
操作:BRPOP list_ch3 22
结果:
1) "list_ch3"
2) "item"

_2.4 RPOPLPUSH_
    他的作用是从source-list的右端弹出一个元素,并放到dest-list的最左端。
操作:lrange source_list 0 -1
结果:
1) "item3"
2) "item2"
3) "item1"
操作:lrange dest_list 0 -1
结果:
1) "item3"
2) "item2"
3) "item1"
操作:RPOPLPUSH source_list dest_list
结果:"item1"
操作:lrange source_list 0 -1
结果:
1) "item3"
2) "item2"
操作:lrange dest_list 0 -1
结果:
1) "item1"
2) "item3"
3) "item2"
4) "item1"

_2.5 BRPOPLPUSH_
    他的作用是从source-list中弹出最右端的元素,然后将这个元素放到dest-list的最左端。但是必须要制定超时时间。
操作:lrange dest_list 0 -1
结果:
1) "item1"
2) "item3"
3) "item2"
4) "item1"
操作:lrange source_list 0 -1
结果:
1) "item3"
2) "item2"
操作:BRPOPLPUSH dest_list source_list
结果:(error) ERR wrong number of arguments for 'brpoplpush' command
操作:BRPOPLPUSH dest_list source_list 1
结果:"item1"

3.集合

_3.1 scard_
    返回集合中的元素的个数
操作:smembers set1
结果:
1) "item1"
2) "item2"
操作:scard set1
结果:(integer) 2

_3.2 srandmember_
    随机返回集合中的一个元素。如果 后面指定的数值为正值,那么,这个随机元素不会重复,相反,有可能会重复。我个人觉得是没多大意义,目前。

_3.3 spop_
    他的最用是从集合中随机删除一个元素。

_3.4 smove_
    他的作用是,当source-set中存在元素item的时候,就会把这个元素item从source-set中删除,并把这个item元素放进dest-set中。

操作:smembers s
结果:
1) "item"
2) "item1"
3) "item2"

操作:smembers d
结果:
1) "item4"
2) "item5"
3) "item3"
操作:smove s d item
结果:(integer) 1

操作:smembers s
结果:
1) "item1"
2) "item2"
操作:smembers d
结果:
1) "item"
2) "item4"
3) "item5"
4) "item3"
操作:smove s d item
结果:(integer) 0


_3.5 SDIFF_
    他的作用是返回存在于第一个集合,而不存在于后面其他集合中的所有元素。
操作:smembers s1
结果:
1) "b"
2) "a"
操作smembers s2
结果:
1) "c"
2) "b"

操作:smembers s3
结果:
1) "c"
2) "d"
操作:sdiff s1 s2 s3
结果:1) "a"


_3.6 SINTER_
    他的作用是计算所有集合中的交集。
_3.7 SUNION _
    他的作用是计算所有集合中的并集。

4.散列

_4.1 HMGET_ 
    获取指定的散列中的指定的一个或者多个key对应的值。
操作:hgetall ht
结果:
1) "k1"
2) "v1"
3) "k2"
4) "v2"
5) "k3"
6) "v3"
操作:hmget ht k1 k2
结果:
1) "v1"
2) "v2"
操作:hmget ht k5
结果:1) (nil)

_4.2 HMSET_
    他的作用是为散列的一个或者多个键设置值。
操作:hgetall ht
结果:
    1) "k1"
    2) "v1"
    3) "k2"
    4) "v2"
    5) "k3"
    6) "v3"
操作:hmset ht k6 v6 k7 v7
结果:OK
操作: hgetall ht
结果:
 1) "k1"
 2) "v1"
 3) "k2"
 4) "v2"
 5) "k3"
 6) "v3"
 7) "k6"
 8) "v6"
 9) "k7"
10) "v7"

_4.3 HDEL_
    他的作用是删除一个或者多个键对应的键值对。

操作:hdel ht k6 k7
结果:(integer) 2

_4.4 HLEN_
    他的作用是返回,这个散列中有多少键值对。
操作:HLEN ht
结果:(integer) 3

_4.5 HEXISTS_
    判断某键是不是在散列中

_4.6 HKEYS_
    返回散列中的所有的键

_4.7 HVALS _
    返回散列中的所有的值

_4.8 HINCRBY_
    给散列的给定的键的值做指定的加法

5.有序集合

5.1 ZCARD
    他的作用是返回有序集合中的成员的数量,如果这个有序集合不存在,则返回为0
操作:zrange sorted-set 0 -1 
结果:
1) "m2"
2) "m4"
3) "m1"
4) "m3"
操作:zcard sorted-set
结果:(integer) 4

5.2 ZINCRBY
    他的作用是为指定的有序集合的成员的分值加上指定的数量。
操作:zincrby sorted-set -22 m1
结果:"-11"


5.3 ZCOUNT
    他的作用是返回有序集合中分值在(min,max)之间的成员数量。
操作:zcount sorted-set 1 51
结果:(integer) 2

5.4 ZRANK
    他的作用是返回指定成员在有序集合中的排名。
操作:zrank sorted-set m3
结果:(integer) 3

5.4 ZSCORE 
    他的作用是返回有序集合中指定成员的分数值。
操作:zscore sorted-set m3
结果:"51"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!