Redis基本数据类型和函数

Redis基本命令

1、Redis数据类型

Redis有string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(有序集合)五种数据类型

1.1、String(字符串)

string类型是Redis的最基本的数据类型,string类型的值最大能存储512MB。

可以存储任何数据,结构是一个key对应一个value。

1.1.1、基本语法
COMMAND key_name
1.1.2、基本命令
  1. SET key value

    设置指定key的值。

    服务器:0>set abc 123
    "OK"
    
  2. GET key
    获取指定key的值。

    服务器:0>get abc
    "123"
    
  3. GETSET key value
    修改指定key的值为新值,并返回这个key的旧值。

    服务器:0>getset abc 234
    "123"
    服务器:0>get abc
    "234"
    
  4. GETRANGE key start end

    返回指定key的值从start到end的子字符串

    服务器:0>getrange abc 0 1
    "23"
    
  5. GETBIT key offset

    对于指定的key的字符串,获取指定偏移量上的位。

    通俗意思就是将key对应的字符串转换为二进制0和1,从左往右数,offset为几,就是当前偏移量上的位值,要么0,要么1。

    服务器:0>getbit abc 1
    "0"
    

    参考链接:

  6. SETBIT key offset value
    修改指定key对应字符串指定的位的值,只能修改为0或1,否则报错。

    详解见上条命令GETBIT

    服务器:0>setbit abc 1 1
    "0"
    服务器:0>get abc
    "r34"
    
  7. MGET key1 [key2…]
    获取一个或多个key的值。

    服务器:0>mget abc def
     1)  "r34"
     2)  "567"
    
  8. SETEX key seconds value

    设置或覆盖key的值为value,并设置有效期seconds,秒为单位。

    服务器:0>setex abc 10 789
    "OK"
    服务器:0>get abc
    "789"
    

    十秒后

    服务器:0>get abc
    null
    
  9. SETNX key value
    只有在key不存在的时候设置key的值,意思就是不能覆盖写入!

    服务器:0>set abc 123
    "OK"
    服务器:0>setnx abc 456
    "0"
    服务器:0>get abc
    "123"
    服务器:0>get xyz
    null
    服务器:0>setnx xyz 987
    "1"
    服务器:0>get xyz
    "987"
    
  10. SETRANGE key offset value
    用value覆盖写入key对应的字符串,从偏移量offset开始。

    服务器:0>get abc
    "123"
    服务器:0>setrange abc 1 098
    "4"
    服务器:0>get abc
    "1098"
    
  11. STRLEN key
    返回key对应字符串的长度

    服务器:0>get abc
    "1098"
    服务器:0>strlen abc
    "4"
    服务器:0>strlen def
    "3"
    
  12. MSET key value [key value…]

    同时设置多个key-value对。

    服务器:0>mset abc 123 def 234
    "OK"
    服务器:0>mget abc def
     1)  "123"
     2)  "234"
    
  13. MSETNX key value [key value…]

    同时设置多个key-value对,当且仅当所有的key都不存在。

    服务器:0>mget abc def
     1)  "123"
     2)  "234"
    服务器:0>msetnx abc 567 def 890
    "0"
    服务器:0>mget abc def
     1)  "123"
     2)  "234"
    服务器:0>del xyz
    "1"
    服务器:0>msetnx abc 567 def 890 xyz 009
    "0"
    服务器:0>mget abc def xyz
     1)  "123"
     2)  "234"
     3)  null
    服务器:0>del abc def xyz opt
    "4"
    服务器:0>mget abc def xyz opt
     1)  null
     2)  null
     3)  null
     4)  null
    服务器:0>msetnx abc 123 def 456 xyz 789
    "1"
    服务器:0>mget abc def xyz opt
     1)  "123"
     2)  "456"
     3)  "789"
     4)  null
    
  14. PSETEX key milliseconds value
    和SETEX命令相似,SETEX是以秒为单位设置key的过期时间,PSETEX是以毫秒为单位设置key的过期时间,这里就不举例了。

  15. INCR key

    将key对应的数字值加1,必须为数字,不然报错。

    服务器:0>get abc
    "123"
    服务器:0>incr abc
    "124"
    服务器:0>get abc
    "124"
    服务器:0>set abc qqq
    "OK"
    服务器:0>get abc
    "qqq"
    服务器:0>incr abc
    "ERR value is not an integer or out of range"
    
  16. INCRBY key increment

    将key对应的数字值加上指定的增量(increment),和INCR类似。

    服务器:0>set abc 123
    "OK"
    服务器:0>get abc
    "123"
    服务器:0>incrby abc 10
    "133"
    服务器:0>get abc
    "133"
    
  17. INCRBYFLOAT key increment

    将key对应的数字值加上指定的浮点增量(increment),和INCR类似。

    服务器:0>get abc
    "133"
    服务器:0>incrbyfloat abc 1.1
    "134.10000000000000001"
    服务器:0>get abc
    "134.10000000000000001"
    

    至于为什么是000000001,设计就是这样,可以自行百度0.0。
    建议减少使用此方法!!!会出现精度问题!!!尽量使用INCR。

  18. DECR key

    将key对应的数字值减1,必须为数字,不然报错。

    服务器:0>set abc 123
    "OK"
    服务器:0>decr abc
    "122"
    服务器:0>get abc
    "122"
    
  19. DECRBY key increment

    将key对应的数字值减去指定的减量(increment),和DECR类似。

    服务器:0>get abc
    "122"
    服务器:0>decrby abc 10
    "112"
    服务器:0>get abc
    "112"
    
  20. APPEND key value

    如果key对应的字符串存在,则在当前字符串末尾追加指定的value字符串;如果key对应的字符串不存在,则直接给设置当前key的值为value。

    服务器:0>del abc
    "1"
    服务器:0>get abc
    null
    服务器:0>append abc 123
    "3"
    服务器:0>get abc
    "123"
    服务器:0>append abc 456
    "6"
    服务器:0>get abc
    "123456"
    

1.2、Hash(哈希)

Redis hash是一个string类型的field(字段)和value(值)的映射表,适用于存储对象。

Redis每个hash可以存储232-1键值对(40多亿)

1.2.1、基本命令
  1. HSET key field value

    将哈希表key中的字段filed的值设置为value。

    服务器:0>hset test name jly
    "1"
    服务器:0>hset test age 20
    "1"
    服务器:0>hset test addr "河南"
    "1"
    服务器:0>hgetall test
     1)  "name"
     2)  "jly"
     3)  "age"
     4)  "20"
     5)  "addr"
     6)  "河南"
    
  2. HMSET key field1 value1 [field2 value2…]
    同时将多个field-value对设置到哈希表hkey中

    服务器:0>hmset test1 name zs age 21 addr 河北
    "OK"
    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "21"
     5)  "addr"
     6)  "河北"
    
  3. HDEL key field1 [field2…]

    删除一个或多个哈希表字段。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "21"
     5)  "addr"
     6)  "河北"
    服务器:0>hdel test1 addr age
    "2"
    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
    
  4. HEXISTS key field

    查看哈希表key内field字段是否存在,存在输出1,不存在输出0。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
    服务器:0>hexists test1 name
    "1"
    服务器:0>hexists test1 age
    "0"
    
  5. HGET key field

    获取哈希表key内指定字段field的值。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
    服务器:0>hget test1 name
    "zs"
    服务器:0>hget test1 age
    null
    
  6. HGETALL key
    获取哈希表key内所有的字段和值。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
    
  7. HINCRBY key field increment
    为哈希表key内整数值字段field加上增量increment,字段的值必须是整数值!

    服务器:0>hset test1 age 22
    "1"
    服务器:0>hgetall test1 
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "22"
    服务器:0>hincrby test1 age 2
    "24"
    服务器:0>hget test1 age
    "24"
    
  8. HKEYS key
    获取哈希表key内所有字段。

    服务器:0>hgetall test1 
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "22"
    服务器:0>hkeys test1
     1)  "name"
     2)  "age"
    
  9. HLEN key
    获取哈希表key内字段的数量。

    服务器:0>hgetall test1 
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "22"
    服务器:0>hlen test1
    "2"
    
  10. HMGET key field1 [field2…]
    获取指定哈希表key内的一个或多个字段的值。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "24"
    服务器:0>hmget test1 age name
     1)  "24"
     2)  "zs"
    
  11. HSETNX key field value
    只有在field字段不存在时,设置哈希表字段field的值。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "24"
    服务器:0>hsetnx age 20
    "ERR wrong number of arguments for 'hsetnx' command"
    服务器:0>hsetnx test1 addr 北京
    "1"
    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "24"
     5)  "addr"
     6)  "北京"
    
  12. HVALS key
    获取哈希表key内所有字段的值。

    服务器:0>hgetall test1
     1)  "name"
     2)  "zs"
     3)  "age"
     4)  "24"
     5)  "addr"
     6)  "北京"
    服务器:0>hvals test1
     1)  "zs"
     2)  "24"
     3)  "北京"
    
  13. HSCAN key cursor [MATCH pattern] [COUNT count]
    迭代哈希表中的键值对;cursor为游标,pattern为匹配模式,count为返回元素,默认为10.

    服务器:0>hmset test1 name lisi age 20 addr 河南
    "OK"
    服务器:0>hgetall test1
     1)  "name"
     2)  "lisi"
     3)  "age"
     4)  "20"
     5)  "addr"
     6)  "河南"
    服务器:0>hscan test1 0 match "na*"
     1)  "0"
     2)    1)   "name"
      2)   "lisi"
    

1.3、List(列表)

Redis列表是简单的字符串列表,你可以添加一个元素在列表的头部(左面)或者尾部(右面)。

一个列表可以存储232-1个元素。

1.3.1、基本命令
  1. LPUSH key value1 [value2…]
    将一个或者多个值插入到列表头部。

    服务器:0>lpush list1 zhangsan
    "1"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
    服务器:0>lpush list1 lisi wangwu
    "3"
    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
     3)  "zhangsan"
    
  2. BLPOP key1 [key2…] timeout
    弹出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
     3)  "zhangsan"
    服务器:0>blpop list1 10
     1)  "list1"
     2)  "wangwu"
    
  3. BRPOP key1 [key2…] timeout
    弹出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    服务器:0>brpop list1 10
     1)  "list1"
     2)  "zhangsan"
    
  4. BRPOPLPUSH source_key destination_key timeout
    弹出列表source_key的最后一个元素,并插入到列表destination_key中,并返回它;如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

    服务器:0>lpush list1 zhangsan lisi wangwu
    "3"
    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
     3)  "zhangsan"
    服务器:0>brpoplpush list1 list2 10
    "zhangsan"
    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
    服务器:0>lrange list2 0 10
     1)  "zhangsan"
    
  5. LINDEX key index
    通过索引获取列表内的元素,并非弹出;索引从0开始。

    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
    服务器:0>lindex list1 0
    "wangwu"
    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
    
  6. LINSERT key BEFORE | AFTER pivot value
    在列表元素pivot的前面或后面插入元素value。

    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
    服务器:0>linsert list1 before wangwu zhangsan
    "3"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "wangwu"
     3)  "lisi"
    
  7. LLEN key
    获取列表长度。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "wangwu"
     3)  "lisi"
    服务器:0>llen list1
    "3"
    
  8. LPOP key
    弹出并获取列表的第一个元素。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "wangwu"
     3)  "lisi"
    服务器:0>lpop list1
    "zhangsan"
    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
    
  9. LPUSHX key value
    将值插入到已经存在的列表的头部;不存在的不进行操作。

    服务器:0>lrange list1 0 10
     1)  "wangwu"
     2)  "lisi"
    服务器:0>lpushx list1 zhangsan
    "3"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "wangwu"
     3)  "lisi"
    服务器:0>lrange list3 0 10
    
    服务器:0>lpushx list3 zhaoliu
    "0"
    服务器:0>lrange list3 0 10
    
    
  10. LRANGE key start stop
    获取列表指定范围内的元素,全部是闭区间。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "wangwu"
     3)  "lisi"
    服务器:0>lrange list1 0 1
     1)  "zhangsan"
     2)  "wangwu"
    
  11. LREM key count value
    根据count的值移除列表中与value相同的元素。

    COUNT 的值可以是以下几种:

    • count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。

    • count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。

    • count = 0 : 移除表中所有与 VALUE 相等的值。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim"
     3)  "jim"
     4)  "lisi"
     5)  "zhangsan"
     6)  "wangwu"
     7)  "lisi"
    服务器:0>lrem list1 1 jim
    "1"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim"
     3)  "lisi"
     4)  "zhangsan"
     5)  "wangwu"
     6)  "lisi"
    服务器:0>lrem list1 -1 zhangsan
    "1"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim"
     3)  "lisi"
     4)  "wangwu"
     5)  "lisi"
    服务器:0>lrem list1 0 lisi
    "2"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim"
     3)  "wangwu"
    
  12. LSET key index value
    通过索引设置列表元素的值。

    服务器:0>lindex list1 1
    "jim"
    服务器:0>lset list1 1 jim2
    "OK"
    服务器:0>lindex list1 1
    "jim2"
    
  13. LTRIM key start stop
    对列表元素进行切片操作,只保留start到stop内的元素,闭区间。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim2"
     3)  "wangwu"
    服务器:0>ltrim list1 0 1
    "OK"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim2"
    
  14. RPOP key
    弹出并获取列表的最后一个元素。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "jim2"
    服务器:0>rpop list1
    "jim2"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
    
  15. RPOPLPUSH source destination
    从source列表内弹出最后一个元素,并插入到destination列表内。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
    服务器:0>lrange list2 0 10
     1)  "zhangsan"
    服务器:0>rpoplpush list1 list2
    "zhangsan"
    服务器:0>lrange list1 0 10
    
    服务器:0>lrange list2 0 10
     1)  "zhangsan"
     2)  "zhangsan"
    
  16. RPUSH key value1 [value2…]
    在列表最后插入一个或多个数据。

    服务器:0>lrange list1 0 10
    
    服务器:0>rpush list1 zhangsan lisi wangwu 
    "3"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "lisi"
     3)  "wangwu"
    
  17. RPUSHX key value [value…]

    在已存在的列表最后插入一个或多个数据。

    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "lisi"
     3)  "wangwu"
    服务器:0>lrange list3 0 10
    
    服务器:0>rpushx list3 zhaoliu liqi
    "0"
    服务器:0>lrange list3 0 10
    
    服务器:0>rpushx list1 zhaoliu liqi
    "5"
    服务器:0>lrange list1 0 10
     1)  "zhangsan"
     2)  "lisi"
     3)  "wangwu"
     4)  "zhaoliu"
     5)  "liqi"
    

1.4、Set(集合)

Redis的Set是String类型的无序集合,集合内的元素是唯一的,不会出现重复的元素。

Redis内的集合是通过哈希表实现的,所以复杂度都是O(1)。

集合中最大的成员是为232-1。

1.4.1、基本命令
  1. SADD key member1 [member2…]
    向集合内添加一个或多个成员。

    服务器:0>sadd set1 abc def abc
    "2"
    服务器:0>sadd set1 xyz def
    "1"
    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    
  2. SCARD key
    获取集合的成员数。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    服务器:0>scard set1
    "3"
    
  3. SDIFF key1 [key2…]
    返回第一个集合与其他集合的差异。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    服务器:0>smembers set2
     1)  "abc"
    服务器:0>smembers set3
     1)  "def"
    服务器:0>sdiff set1 set2 set3
     1)  "xyz"
    
  4. SDIFFSTORE destination key1 [key2…]
    将key1与其他集合的差异存到destination内。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    服务器:0>smembers set2
     1)  "abc"
    服务器:0>smembers set3
     1)  "def"
    服务器:0>sdiffstore set4 set1 set2 set3
    "1"
    服务器:0>smembers set4
     1)  "xyz"
    
  5. SINTER key1 [key2…]
    返回给定所有集合的交集。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    服务器:0>smembers set2
     1)  "abc"
    服务器:0>smembers set3
     1)  "pot"
     2)  "abc"
     3)  "def"
    服务器:0>sinter set1 set2 set3
     1)  "abc"
    
  6. SINTERSTORE destination key1 [key2…]
    将所有集合的交集存入destination内。

    服务器:0>sinter set1 set2 set3
     1)  "abc"
    服务器:0>sinterstore set6 set1 set2 set3
    "1"
    服务器:0>smembers set6
     1)  "abc"
    
  7. SISMEMBER key member
    判断member元素是否在集合key的成员。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    服务器:0>sismember set1 pot
    "0"
    服务器:0>sismember set1 abc
    "1"
    
  8. SMEMBER key
    返回集合中所有的元素。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    
  9. SMOVE source destination member
    将source内的member元素移动到destina集合内。

    服务器:0>smembers set1
     1)  "xyz"
     2)  "def"
     3)  "abc"
    服务器:0>smembers set2
     1)  "abc"
    服务器:0>smove set1 set2 xyz
    "1"
    服务器:0>smembers set2
     1)  "xyz"
     2)  "abc"
    
  10. SPOP key
    弹出集合内的一个随机元素。

    服务器:0>smembers set2
     1)  "xyz"
     2)  "abc"
    服务器:0>spop set2
    "abc"
    服务器:0>smembers set2
     1)  "xyz"
    
  11. SRANDMEMBER key [count]
    随机返回集合key内的count个元素。

    服务器:0>smembers set1
     1)  "def"
     2)  "abc"
    服务器:0>srandmember set1 1
     1)  "def"
    服务器:0>srandmember set1 2
     1)  "abc"
     2)  "def"
    
  12. SREM key member1 [member2…]
    移除集合中一个或多个成员。

    服务器:0>smembers set1
     1)  "def"
     2)  "abc"
    服务器:0>srem set1 abc
    "1"
    服务器:0>smembers set1
     1)  "def"
    
  13. SUNION key1 [key2…]
    返回多个集合内的并集。

    服务器:0>smembers set1
     1)  "def"
    服务器:0>smembers set2
     1)  "xyz"
    服务器:0>smembers set3
     1)  "pot"
     2)  "abc"
     3)  "def"
    服务器:0>sunion set1 set2 set3
     1)  "pot"
     2)  "abc"
     3)  "xyz"
     4)  "def"
    
  14. SUNIONSTORE destination key1 [key2…]
    将多个集合的并集添加到destination集合内。

    服务器:0>smembers set1
     1)  "def"
    服务器:0>smembers set2
     1)  "xyz"
    服务器:0>smembers set3
     1)  "pot"
     2)  "abc"
     3)  "def"
    服务器:0>sunionstore set7 set1 set2 set3
    "4"
    服务器:0>smembers set7
     1)  "pot"
     2)  "abc"
     3)  "xyz"
     4)  "def"
    
  15. SSCAN key cursor [MATCH pattern] [COUNT count]
    迭代集合元素。
    cursor:游标。
    pattern:匹配模式。
    count:指定从数据集里返回的元素,默认10.

    服务器:0>smembers set7
     1)  "pot"
     2)  "abc"
     3)  "xyz"
     4)  "def"
    服务器:0>sscan set7 0
     1)  "0"
     2)    1)   "pot"
      2)   "abc"
      3)   "xyz"
      4)   "def"
    服务器:0>sscan set7 0 match a* count 2
     1)  "1"
     2)    1)   "abc"
    

1.5、Sorted Set(有序集合)

Redis有序集合和集合一样也是string类型元素的集合,且不允许元素重复。

不同的是每个元素都会关联一个double类型的分数,Redis就是利用分数对集合内的元素进行从小到大的排序。

有序集合的成员是唯一的,分数不是唯一的。

集合是通过哈希表实现的,复杂度都是O(1),集合中最大的成员数是232-1。

1.5.1、基本命令
  1. ZADD key score1 member1 [score2 member2…]
    向集合内添加一个或多个成员,或者更新已存在成员。

    服务器:0>zadd zset 0 abc 1 def 2 xyz 3 pot 4 pot 5 jkl 6 lmn
    "6"
    服务器:0>zrange zset 0 10 withscores
     1)  "abc"
     2)  "0"
     3)  "def"
     4)  "1"
     5)  "xyz"
     6)  "2"
     7)  "pot"
     8)  "4"
     9)  "jkl"
     10)  "5"
     11)  "lmn"
     12)  "6"
    
  2. ZCARD key
    获取有序集合的成员数。

    服务器:0>zcard zset
    "6"
    
  3. ZCOUNT key min max
    获取有序集合在指定区间内的成员数。

    服务器:0>zcount zset 0 2
    "3"
    
  4. ZINCRBY key increment member
    对有序集合中指定成员的分数加上增量increment。

    服务器:0>zrange zset 0 10 withscores
     1)  "abc"
     2)  "0"
     3)  "def"
     4)  "1"
     5)  "xyz"
     6)  "2"
     7)  "pot"
     8)  "4"
     9)  "jkl"
     10)  "5"
     11)  "lmn"
     12)  "6"
    服务器:0>zincrby zset 2 abc
    "2"
    服务器:0>zrange zset 0 10 withscores
     1)  "def"
     2)  "1"
     3)  "abc"
     4)  "2"
     5)  "xyz"
     6)  "2"
     7)  "pot"
     8)  "4"
     9)  "jkl"
     10)  "5"
     11)  "lmn"
     12)  "6"
    
  5. ZINTERSTORE destination numkeys key1 [key2…]
    指定个数的有序集合的交集添加到destination有序集合内。

    默认情况下为分数相加。

    服务器:0>zadd zset1 1 zhangsan 2 lisi
    "2"
    服务器:0>zadd zset2 3 zhangsan 4 lisi
    "2"
    服务器:0>zinterstore zset3 2 zset1 zset2
    "2"
    服务器:0>zrange zset3 0 10 withscores
     1)  "zhangsan"
     2)  "4"
     3)  "lisi"
     4)  "6"
    
  6. ZLEXCOUNT key min max
    获取所有分数全部相同的有序集合指定字典区间内的成员数量。

    服务器:0>zadd zset4 0 zhangsan 0 lisi 0 wangwu 0 zhaoliu
    "4"
    服务器:0>zrange zset4 0 10 
     1)  "lisi"
     2)  "wangwu"
     3)  "zhangsan"
     4)  "zhaoliu"
    服务器:0>zlexcount zset4 [lisi [zhangsan
    "3"
    
  7. ZRANGE key start stop [WITHSCORES]
    通过索引区间返回有序集合指定区间内的成员。

    服务器:0>zrange zset4 0 10 
     1)  "lisi"
     2)  "wangwu"
     3)  "zhangsan"
     4)  "zhaoliu"
    
  8. ZRANGEBYSCORE key start stop [WITHSCORES] [LIMIT]
    通过指定分数区间返回有序集合的成员。

    服务器:0>zrange zset 0 10 withscores
     1)  "def"
     2)  "1"
     3)  "abc"
     4)  "2"
     5)  "xyz"
     6)  "2"
     7)  "pot"
     8)  "4"
     9)  "jkl"
     10)  "5"
     11)  "lmn"
     12)  "6"
    服务器:0>zrangebyscore zset 0 3 withscores
     1)  "def"
     2)  "1"
     3)  "abc"
     4)  "2"
     5)  "xyz"
     6)  "2"
    
  9. ZREM key member1 [member2…]
    移除一个或多个有序集合的成员。

    服务器:0>zrange zset 0 10 withscores
     1)  "def"
     2)  "1"
     3)  "abc"
     4)  "2"
     5)  "xyz"
     6)  "2"
     7)  "pot"
     8)  "4"
     9)  "jkl"
     10)  "5"
     11)  "lmn"
     12)  "6"
    服务器:0>zrem zset abc def
    "2"
    服务器:0>zrange zset 0 10 withscores
     1)  "xyz"
     2)  "2"
     3)  "pot"
     4)  "4"
     5)  "jkl"
     6)  "5"
     7)  "lmn"
     8)  "6"
    
  10. ZREVRANGE key start stop [WITHSCORES]
    返回指定区间内的有序集合成员,分数从高到低。

    服务器:0>zrevrange zset 0 10 withscores
     1)  "lmn"
     2)  "6"
     3)  "jkl"
     4)  "5"
     5)  "pot"
     6)  "4"
     7)  "xyz"
     8)  "2"
    
  11. ZSCORE key member
    返回有序集合成员的分数。

    服务器:0>zscore zset xyz
    "2"
    

上面就是Redis数据类型里面的基础常用函数,欢迎评论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值