Redis学习笔记三:redis的数据类型讲解及命令实例演示
Redis学习笔记三:redis的数据类型讲解及命令实例演示
孟飞阳 发表于1年前
Redis学习笔记三:redis的数据类型讲解及命令实例演示
  • 发表于 1年前
  • 阅读 114
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 李捷老师redis教程的学习笔记,内容好多,记录下来以后需要时再来查

一.Redis的数据类型

1.String类型及操作

        String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。

        Set方法:设置key对应的值为string类型的value

        例如:我们添加一个name=lili的键值对

redis 127.0.0.1:6379> set name lili  
OK 

 

        Setnx:设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思。

        例如:我们添加一个name=lili_new的键值对。

redis 127.0.0.1:6379> get name  
"lili"  
redis 127.0.0.1:6379> setnx name lili_new  
(integer) 0  
redis 127.0.0.1:6379> get name  
"lili"  
redis 127.0.0.1:6379> setnx age 20  
(integer) 1  

        Setex:设置key对应的值为string类型的value,并指定此键值对应的有效期。

        例如:我们添加一个haircolor=red的键值对,并指定有效期为10秒

redis 127.0.0.1:6379> setex haircolor 10 red  
OK  
redis 127.0.0.1:6379> get haircolor  
"red"  
redis 127.0.0.1:6379> get haircolor  
(nil)  

        nil:表示空

        Setrange:设置指定key的value值的子字符串

        例如:我们希望将lili的126邮箱替换为gmail邮箱

redis 127.0.0.1:6379> get name  
"lili@126.com"  
redis 127.0.0.1:6379> setrange name 6 gmail.com  
(integer) 14  
redis 127.0.0.1:6379> get name  
"lili@gmail.com"  
    

redis 127.0.0.1:6379> set email lijie@lampbrother.net  
OK  
redis 127.0.0.1:6379> get email  
"lijie@lampbrother.net"  
redis 127.0.0.1:6379> setrange email 6-li-jie.me  
(integer) 21  
redis 127.0.0.1:6379> get email  
"lijie@li-jie.meer.net" 

        mset:一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。

redis 127.0.0.1:6379> mset key1 lijie1 key2 lijie2  
OK  
redis 127.0.0.1:6379> get key1  
"lijie1"  
redis 127.0.0.1:6379> get key2  
"lijie2"  

        msetnx:一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key。

1.  redis 127.0.0.1:6379> msetnx key3 lijie3 key2 30  
2.  (integer) 0  
3.  redis 127.0.0.1:6379> get key3  
4.  (nil)  
5.  redis 127.0.0.1:6379> msetnx key3 lijie3 key4 30  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> get key3  
8.  "lijie3"  
9.  redis 127.0.0.1:6379> get key4  
10. "30"  

        get:获取key对应的string值,如果key不存在返回nil。

        getset:设置key的值,并返回key的旧值。

1.  redis 127.0.0.1:6379> getset key4 40  
2.  "30"  
3.  redis 127.0.0.1:6379> get key4  
4.  "40"  

        getrange:获取key的value值的子字符串。

1.  redis 127.0.0.1:6379> get email  
2.  "lijie@li-jie.meer.net"  
3.  redis 127.0.0.1:6379> getrange email 0 4  
4.  "lijie"  

        mget:一次获取多个key的值,如果对应key不存在则对应返回nil。

1.  redis 127.0.0.1:6379> mget key1 key2 key3  
2.  1) lijie1  
3.  2) lijie2  
4.  3) lijie3  

        incr:对key的值做加加操作,并返回新的值。

1.  redis 127.0.0.1:6379> incr key4  
2.  (integer) 41  
3.  redis 127.0.0.1:6379> incr key4  
4.  (integer) 42  
5.  redis 127.0.0.1:6379> get key4  
6.  "42"  
7.    
8.  redis 127.0.0.1:6379> incr key7  
9.  (integer) 1  
10. redis 127.0.0.1:6379> incr key7  
11. (integer) 2  
12. redis 127.0.0.1:6379> get key7  
13. "2"  

        incrby:同incr类似,加指定值,key不存在时候会设置key,并认为原来的value是0。

1.  redis 127.0.0.1:6379> incrby key4 5  
2.  (integer) 47  
3.  redis 127.0.0.1:6379> get key4  
4.  "47"  
5.  redis 127.0.0.1:6379> incrby key4 -5  
6.  (integer) 42  
7.  redis 127.0.0.1:6379> get key4  
8.  "42"  

        decr:对key的值做减减操作。

        decrby:同decr类似,减指定值。

1.  redis 127.0.0.1:6379> get key6  
2.  "39"  
3.  redis 127.0.0.1:6379> decr key6  
4.  (integer) 38  
5.  redis 127.0.0.1:6379> decrby key6 -3  
6.  (integer) 41  
7.  redis 127.0.0.1:6379> decrby key6 3  
8.  (integer) 38  

        append:给指定key的字符串追加value,返回新字符串值的长度。

1.  redis 127.0.0.1:6379> get name  
2.  "test" 
3.  redis 127.0.0.1:6379> append name .net  
4.  (integer) 8  
5.  redis 127.0.0.1:6379> get name  
6.  "test.net"  

        strlen:取指定key的value值的长度。

1.  redis 127.0.0.1:6379> strlen name  
2.  (integer) 8  

2.hash类型及操作

        Redis hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

        hset:设置hash field为指定值,如果key不存在,则先创建。

1.  redis 127.0.0.1:6379> hset user:001 name lijie  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hget user:001 name  
4.  "lijie" 

        hsetnx:设置hash field为指定值,如果key不存在,则先创建。如果存在返回0。

1.  redis 127.0.0.1:6379> hsetnx user:002 name lamp  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hget user:002 name  
4.  "lamp"  
5.  redis 127.0.0.1:6379> hsetnx user:002 name lampbrother  
6.  (integer) 0 
7.  redis 127.0.0.1:6379> hget user:002 name  
8.  "lamp"  

        hmset:同时设置hash的多个field。

1.  redis 127.0.0.1:6379> hmset user:003 name lijie age 20 sex 1  
2.  OK  
3.  redis 127.0.0.1:6379> hget user:003 name  
4.  "lijie"  
5.  redis 127.0.0.1:6379> hget user:003 age  
6.  "20"  
7.  redis 127.0.0.1:6379> hget user:003 sex  
8.  "1"  

        hget:获取指定的hash field。

        hmget:获取全部指定的hash field。

1.  redis 127.0.0.1:6379> hmget user:003 name age sex  
2.  1) "lijie"  
3.  2) "20"  
4.  3) "1"  

        hincrby:指定的hash field加上给定值。

1.  redis 127.0.0.1:6379> hincrby user:003 age 5  
2.  (integer) 25  
3.  redis 127.0.0.1:6379> hget user:003 age  
4.  "25"  

        hexists:测试指定field是否存在。

1.  redis 127.0.0.1:6379> hexists user:003 age  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hexists user:001 sex  
4.  (ingeger) 0  

        hlen:返回指定hash的field数量

1.  redis 127.0.0.1:6379> hlen user:001  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> hlen user:003  
4.  (integer) 3  

        hdel:删除指定hash的field

1.  redis 127.0.0.1:6379> hget user:003 age  
2.  "25"  
3.  redis 127.0.0.1:6379> hdel user:003 age  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> hget user:003 age  
6.  (nil)  

        hkeys:返回hash的所有field

1.  redis 127.0.0.1:6379> hkeys user:001  
2.  1) "name"  
3.  redis 127.0.0.1:6379> hkeys user:003  
4.  1) "name"  
5.  2) "sex"  

        hvals:返回hash的所有value

1.  redis 127.0.0.1:6379> hvals user:003  
2.  1) "lijie"  
3.  2) "1" 

        hgetall:获取某个hash中全部的field及value

1.  redis 127.0.0.1:6379> hgetall user:003  
2.  1) "name"  
3.  2) "lijie"  
4.  3) "sex"  
5.  4) "1"  

3.list类型及操作

        List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。

        lpush:在key对应list的头部添加字符串元素。

1.  redis 127.0.0.1:6379> lpush mylist "world"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> lpush mylist "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrange mylist 0 -1  
6.  1) "hello"  
7.  2) "world" 

        0代表头部第一个元素,-1代表尾部第一个元素。lrange mylist 0 -1表示从list中头第一个元素一直到尾第一个元素依次取出来,即第一个元素取到最后一个元素。

        rpush:在key对应list的尾部添加字符串元素。

1.  redis 127.0.0.1:6379> rpush mylist2 "world"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> rpush mylist2 "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrange mylist2 0 -1  
6.  1) "world"  
7.  2) "hello"  

        linsert:在key对应list的特定位置前或后添加字符串

1.  redis 127.0.0.1:6379> rpush mylist3 "world"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> linsert mylist3 before "world "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrange mylist3 0 -1  
6.  1) "hello"  
7.  2) "world"  

        lset:设置list中指定下标的元素值

1.  redis 127.0.0.1:6379> rpush mylist4 "hello"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> lset mylist4 0 "world"  
4.  OK  
5.  redis 127.0.0.1:6379> lrange mylist4 0 -1  
6.  1) "world"

        lrem:从key对应list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)。

1.  redis 127.0.0.1:6379> rpush mylist5 "hello"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> rpush mylist5 "hello"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> lrem mylist5 1 "hello"  //从mylist5中删除1个和hello相同的元素  
6.  (integer) 1  //代表删除元素的个数 

        ltrim:保留指定key的值范围内的数据

1.  redis 127.0.0.1:6379> rpush mylist8 "one"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> rpush mylist8 "two"  
4.  (integer) 2  
5.  redis 127.0.0.1:6379> ltrim mylist8 1 -1  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> lrange mylist8 0 -1  
8.  1) "two"  

        lpop:从list的头部删除元素,并返回删除元素

1.  redis 127.0.0.1:6379> lrange mylist 0 -1  
2.  1) "hello"  
3.  2) "world"  
4.  redis 127.0.0.1:6379> lpop mylist  
5.  "hello"  
6.  redis 127.0.0.1:6379> lrange mylist 0 -1  
7.  1) "world"  

        rpop:从list的尾部删除元素,并返回删除元素

1.  redis 127.0.0.1:6379> lrange mylist2 0 -1  
2.  1) "hello"  
3.  2) "world"  
4.  redis 127.0.0.1:6379> rpop mylist2  
5.  "world"  
6.  redis 127.0.0.1:6379> lrange mylist2 0 -1  
7.  1) "hello"  

        lists类型

        rpoplpush:从第一个list的尾部移除元素并添加到第二个list的头部。

1.  redis 127.0.0.1:6379> lrange mylist5 0 -1  
2.  1) "three"  
3.  2) "hello"  
4.  redis 127.0.0.1:6379> lrange mylist6 0 -1  
5.  1) "hello"  
6.  2) "foo"  
7.  redis 127.0.0.1:6379> rpoplpush mylist5 mylist6  
8.  "hello"  
9.  redis 127.0.0.1:6379> lrange mylist5 0 -1  
10. 1) "three"  
11. redis 127.0.0.1:6379> lrange mylist6 0 -1  
12. 1) "hello"  
13. 2) "hello"  
14. 3) "foo"  

        lindex:返回名称为key的list中index位置的元素。

1.  redis 127.0.0.1:6379> lrange mylist5 0 -1  
2.  1) "three"  
3.  2) "foo"  
4.  redis 127.0.0.1:6379> lindex mylist5 0  
5.  "three"  
6.  redis 127.0.0.1:6379> lindex mylist5 1  
7.  "foo"  

        llen:返回key对应list的长度

1.  redis 127.0.0.1:6379> lrange mylist6 0 -1  
2.  1) "hello"  
3.  2) "hello"  
4.  3) "foo"  
5.  redis 127.0.0.1:6379> llen mylist6  
6.  (integer) 3 

 

4.set类型及操作

        Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。

        sadd:向名称为key的set中添加元素。

1.  redis 127.0.0.1:6379> sadd myset "hello"  
2.  (integer) 1  //表示添加成功  
3.  redis 127.0.0.1:6379> sadd myset "world"  
4.  (integer) 1  //表示添加成功  
5.  redis 127.0.0.1:6379> sadd myset "world"  
6.  (integer) 0  //表示添加不成功  
7.  redis 127.0.0.1:6379> smembers myset  
8.  1) "world"  
9.  2) "hello" 

        srem:删除名称为key的set中的元素。

1.  redis 127.0.0.1:6379> sadd myset2 one  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> sadd myset2 two  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> sadd myset2 three  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> smembers myset2  
8.  1) "three"  
9.  2) "two"  
10. 3) "one"  
11. redis 127.0.0.1:6379> srem myset2 two  
12. (integer) 1  
13. redis 127.0.0.1:6379> srem myset2 two  
14. (integer) 0  
15. redis 127.0.0.1:6379> smembers myset2  
16. 1) "three"  
17. 2) "one" 

        spop:随机返回并删除名称为key的set中一个元素。

1.  redis 127.0.0.1:6379> sadd myset3 one  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> sadd myset3 two  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> sadd myset3 three  
6.  (integer) 1  
7.  redis 127.0.0.1:6379> sadd myset3 four  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> sadd myset3 five  
10. (integer) 1  
11. redis 127.0.0.1:6379> smembers myset3  
12. 1) "four"  
13. 2) "three"  
14. 3) "two"  
15. 4) "one"  
16. 5) "five"  
17. redis 127.0.0.1:6379> spop myset3  
18. "one"  
19. redis 127.0.0.1:6379> spop myset3  
20. "four"  
21. redis 127.0.0.1:6379> spop myset3  
22. "three"  
23. redis 127.0.0.1:6379> smembers myset3  
24. 1) "two"  
25. 2) "five" 

        sdiff:返回所有给定key与第一个key的差集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sdiff myset2 myset3  
8.  1) "three"  

        sdiffstore:返回所有给定key与第一个key的差集,并将结果存为另一个key。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sdiffstore myset4 myset2 myset3  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> smembers myset4  
10. 1) "three" 

        sinter:返回所有给定key的交集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sinter myset2 myset3  
8.  1) "two"  

        sinterstore:返回所有给定key的交集,并将结果存为另一个key。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sinterstore myset6 myset2 myset3  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> smembers myset6  
10. 1) "two"  

        sunion:返回所有给定key的并集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sunion myset2 myset3  
8.  1) "three"  
9.  2) "one"  
10. 3) "two" 

        sunionstore:返回所有给定key的并集。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> sunionstore myset7 myset2 myset3  
8.  (integer) 3  
9.  redis 127.0.0.1:6379> smembers myset7  
10. 1) "three"  
11. 2) "one"  
12. 3) "two"  

        smove:从第一个key对应的set中移除member并添加到第二个对应的set中。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "three"  
3.  2) "two"  
4.  redis 127.0.0.1:6379> smembers myset3  
5.  1) "two"  
6.  2) "one"  
7.  redis 127.0.0.1:6379> smove myset2 myset7 three  
8.  (integer) 1  
9.  redis 127.0.0.1:6379> smembers myset2  
10. 1) "two"  
11. redis 127.0.0.1:6379> smembers myset3  
12. 1) "two"  
13. 2) "one"  
14. 3) "three" 

        scard:返回名称为key的set的元素个数。

1.  redis 127.0.0.1:6379> scard myset3  
2.  (integer) 3 

        sismember:测试member是否是名称为key的set的元素。

1.  redis 127.0.0.1:6379> smembers myset2  
2.  1) "two"  
3.  redis 127.0.0.1:6379> sismember myset2 two  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> sismember myset2 one  
6.  (integer) 0  

        srandmember:随机返回名称为key的set的一个元素,但不删除元素。

1.  redis 127.0.0.1:6379> smembers myset3  
2.  1) "two"  
3.  2) "one"  
4.  redis 127.0.0.1:6379> srandmember myset3  
5.  "two"  
6.  redis 127.0.0.1:6379> srandmember myset3  
7.  "one" 

 

5.sort set类型及操作

        sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。

        zadd:向名称为key的zset中添加元素member,score用于排序。如果该元素存在,则更新其顺序。

1.  redis 127.0.0.1:6379> zadd myzset 1 "one"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> zadd myzset 2 "two"  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> zadd myzset 3 "two"  
6.  (integer) 0  
7.  redis 127.0.0.1:6379> zrange myzset 0 -1 withscores  
8.  1) "one"  
9.  2) "1"  
10. 3) "two"  
11. 4) "3"  

        zrem:删除名称为key的zset中的元素member

1.  redis 127.0.0.1:6379> zrange myzset 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "3"  
6.  redis 127.0.0.1:6379> zrem myzset two  
7.  (integer) 1  
8.  redis 127.0.0.1:6379> zrange myzset 0 -1 withscores  
9.  1) "one"  
10. 2) "1"  

        zincrby:如果在名称为key的zset中已经存在元素member,则该元素的score增加increment,否则向该集合中添加该元素,其score的值为increment。

1.  redis 127.0.0.1:6379> zadd myzset2 1 "one"  
2.  (integer) 1  
3.  redis 127.0.0.1:6379> zadd myzset2 2 "two"  
4.  (integer) 1  
5.  redis 127.0.0.1:6379> zincrby myzset2 2 "one"  
6.  "3" //代表one的顺序号变成了3  
7.  redis 127.0.0.1:6379> zrange myzset2 0 -1 withscores  
8.  1) "two"  
9.  2) "2"  
10. 3) "one"  
11. 4) "3" 

        zrank:返回名称为key的zset中member元素的排名(按score从小到大排序)即下标。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  
10. redis 127.0.0.1:6379> zrank myzset3 two  
11. (integer) 1 //two的下标是1(从0开始) 

        zrevrank:返回名称为key的zset中member元素的排名(按score从大到小排序)即下标。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  
10. redis 127.0.0.1:6379> zrevrank myzset3 two  
11. (integer) 2

        zrevrange:返回名称为key的zset(按score从大到小顺序)中的index从start到end的所有元素。

1.  redis 127.0.0.1:6379> zrevrange myzset3 0 -1 withscores  
2.  1) "five"  
3.  2) "5"  
4.  3) "three"  
5.  4) "3"  
6.  5) "two"  
7.  6) "2"  
8.  7) "one"  
9.  8) "1"  

        zrangebyscore:返回集合中score在给定区间的元素。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  

8.  redis 127.0.0.1:6379> zrangebyscore myzset3 2 3 withscores  
9.  1) "two"  
10. 2) "2"  
11. 3) "three"  
12. 4) "3"  

        zcount:返回集合中score在给定区间的数量。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  

10. redis 127.0.0.1:6379> zcount myzset3 2 3  
11. (integer) 2  

        zcard:返回集合中的元素个数。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  
8.  7) "five"  
9.  8) "5"  

10. redis 127.0.0.1:6379> zcard myzset3  
11. (integer) 4  

        zremrangebyrank:删除集合中排名在给定区间的元素。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  

6.  redis 127.0.0.1:6379> zremrangebyrank myzset3 1 1  
7.  (integer) 1 //只删除一个  

8.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
9.  1) "one"  
10. 2) "1"  

        zremrangebyscore:删除集合中score在给定区间的元素。

1.  redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
2.  1) "one"  
3.  2) "1"  
4.  3) "two"  
5.  4) "2"  
6.  5) "three"  
7.  6) "3"  

8.  redis 127.0.0.1:6379> zremrangebyscore myzset3 1 2  
9.  (integer) 2 //删除顺序为1和2的  

10. redis 127.0.0.1:6379> zrange myzset3 0 -1 withscores  
11. 1) "three"  
12. 2) "3"  

 

标签: redis
共有 人打赏支持
粉丝 187
博文 836
码字总数 521493
作品 5
×
孟飞阳
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: