当前位置: 首页 > article >正文

简单认识 redis -数据类型命令

一.Redis 键(key) 不能存在相同名称的key

//SET  KEY_NAME value  设置一个键
127.0.0.1:6379> set runoobkey redis
OK
127.0.0.1:6379> get runoobkey redis
"redis"
//DEL KEY_NAME   删除键
127.0.0.1:6379> DEL redis
(integer) 0
127.0.0.1:6379> DEL runoobkey
(integer) 1
DUMP KEY_NAME 用于序列化给定 key ,并返回被序列化的值。
127.0.0.1:6379> SET greeting "hello, dumping world!"
OK
127.0.0.1:6379> DUMP greeting
"\x00\x15hello, dumping world!\t\x00\x03\xbfc\xcey\xa1\x9e\xfc"
EXISTS KEY_NAM   用于检查给定 key 是否存在。存在返回1
127.0.0.1:6379> exists greeting
(integer) 1
Expire KEY_NAME TIME_IN_SECONDS  用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。
127.0.0.1:6379> SET runooobkey redis
OK
127.0.0.1:6379> EXPIRE runooobkey 60
(integer) 1
127.0.0.1:6379>
Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP  用于设置 key 的过期时间,key 过期后将不再可用。单位以时间戳格式。
127.0.0.1:6379>  SET runooobkey redis
OK
127.0.0.1:6379>  expireat runooobkey 123554332
(integer) 1
KYS PATTERN  找所有符合给定模式 pattern 的 key 
RANDOMKEY 从当前数据库中随机返回一个 key 。
127.0.0.1:6379> set run1 redis
OK
127.0.0.1:6379> set run2 redis2
OK
127.0.0.1:6379>  set run3 redis3
OK
127.0.0.1:6379> keys run*
1) "run3"
2) "run1"
3) "run2"
127.0.0.1:6379>
127.0.0.1:6379> randomkey
"run2"
127.0.0.1:6379> randomkey
"run2"
127.0.0.1:6379>
127.0.0.1:6379> randomkey
"run3"
127.0.0.1:6379> randomkey
"run3"
127.0.0.1:6379>
 MOVE KEY_NAME DESTINATION_DATABASE  将当前数据库的 key 移动到给定的数据库 db 当中。
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set song "db1"
OK
127.0.0.1:6379> MOVE song 1
(integer) 1
127.0.0.1:6379> exists song
(integer) 0
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> exists song
(integer) 1
PERSIST KEY_NAME 用于移除给定 key 的过期时间,使得 key 永不过期。
TTL KEY_NAME  返回 key 的剩余过期时间。
PTTL KEY_NAME 以毫秒为单位返回 key 的剩余过期时间。当 key 不存在时,返回 -2 。
127.0.0.1:6379> expire run2 50
(integer) 1
127.0.0.1:6379> TTl run2
(integer) 44
127.0.0.1:6379> persist run2
(integer) 1
127.0.0.1:6379> TTl run2
(integer) -1
RENAME OLD_KEY_NAME NEW_KEY_NAME  用于修改 key 的名称 。
127.0.0.1:6379> rename greeting run4
OK
127.0.0.1:6379> keys *
1) "run3"
2) "run4"
3) "run2"

SCAN cursor [MATCH pattern] [COUNT count]   

SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。

  • cursor - 游标。
  • pattern - 匹配的模式。
  • count - 可选,用于指定每次迭代返回的 key 的数量,默认值为 10 。
127.0.0.1:6379> scan 1
1) "0"
2) 1) "run4"
   2) "run2"
127.0.0.1:6379> scan 0
1) "0"
2) 1) "run3"
   2) "run4"
   3) "run2"

    

TYPE KEY_NAME 用于返回 key 所储存的值的类型。返回 key 的数据类型,数据类型有:
  • none (key不存在)
  • string (字符串)
  • list (列表)
  • set (集合)
  • zset (有序集)
  • hash (哈希表)
127.0.0.1:6379> type run2
string
127.0.0.1:6379> set
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> set run1 "ddl"
OK
127.0.0.1:6379> type run2
string
127.0.0.1:6379> type run1
string
127.0.0.1:6379> get run2
"redis2"
127.0.0.1:6379> lpush run5 "a,b,c,d,e,f,g"
(integer) 1
127.0.0.1:6379> type run5
list
127.0.0.1:6379>

二.Redis 字符串(String)

SET KEY_NAME VALUE  

GET KEY_NAME

GETRANGE KEY_NAME start end 用于获取存储在指定 key 中字符串的子字符串。
127.0.0.1:6379> set run1 "redis"
OK
127.0.0.1:6379> getrange run1 0 2
"red"
127.0.0.1:6379>
GETSET KEY_NAME VALUE  用于设置指定 key 的值,并返回 key 的旧值。

GETBIT KEY_NAME OFFSET  用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
 
Setbit KEY_NAME OFFSET  用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。

MGET KEY1 KEY2 .. KEYN 返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
127.0.0.1:6379> getset run1 "redis123"
"redis"
127.0.0.1:6379> getbit run1 1
(integer) 1
127.0.0.1:6379> set run2 "redis456"
OK
127.0.0.1:6379> mget run1 run2
1) "redis123"
2) "redis456"
127.0.0.1:6379>
SETEX KEY_NAME TIMEOUT VALUE    指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
PSETEX key1 EXPIRY_IN_MILLISECONDS value1  以毫秒为单位设置 key 的生存时间。
SETRANGE KEY_NAME OFFSET VALUE   用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
SETNX KEY_NAME VALUE  指定的 key 不存在时,为 key 设置指定的值。
STRLEN KEY_NAME 获取指定 key 所储存的字符串值的长度。
MSET key1 value1 key2 value2 .. keyN valueN  用于同时设置一个或多个 key-value 对。
 
MSETNX key1 value1 key2 value2 .. keyN valueN  用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set run1 "001"
OK
127.0.0.1:6379[1]> setrange run1 1 "1"
(integer) 3
127.0.0.1:6379[1]> get run1
"011"
127.0.0.1:6379[1]> exists run2
(integer) 0
127.0.0.1:6379[1]>  setnx run2 "002"
(integer) 1
127.0.0.1:6379[1]> setnx run1 "002"
(integer) 0
127.0.0.1:6379[1]> get run1
"011"
127.0.0.1:6379[1]> psetex run1 1000 "hello"
OK
127.0.0.1:6379[1]> PTTL run2
(integer) 5509

127.0.0.1:6379[1]> mset run1 run2
OK
127.0.0.1:6379[1]> get run1
"run2"

127.0.0.1:6379[1]> msetnx run3 "1" run4 "2"
(integer) 1
127.0.0.1:6379[1]> get run3
"1"
127.0.0.1:6379[1]> get run4
"2"
127.0.0.1:6379[1]>

127.0.0.1:6379[1]> set run2 "run3"
OK
127.0.0.1:6379[1]> get run2
"run3"


127.0.0.1:6379[1]> strlen run1
(integer) 4
127.0.0.1:6379[1]> get run1
"run2"
127.0.0.1:6379[1]>

INCR KEY_NAME   将 key 中储存的数字值增一。key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
INCRBY KEY_NAME INCR_AMOUNT  将 key 中储存的数字加上指定的增量值。
INCRBYFLOAT KEY_NAME INCR_AMOUNT   为 key 中所储存的值加上指定的浮点数增量值。
DECR KEY_NAME 将 key 中储存的数字值减一。
DECRBY KEY_NAME DECREMENT_AMOUNT   key 所储存的值减去指定的减量值。
APPEND KEY_NAME NEW_VALUE   用于为指定的 key 追加值。
127.0.0.1:6379[1]> set run1 1
OK
127.0.0.1:6379[1]> get run1
"1"
127.0.0.1:6379[1]> incr run1
(integer) 2
127.0.0.1:6379[1]> get run6
(nil)
127.0.0.1:6379[1]> incr run6
(integer) 1
1127.0.0.1:6379[1]> incrby run6 10
(integer) 11
127.0.0.1:6379[1]> incrbyfloat run6 1.2
"12.19999999999999929"
127.0.0.1:6379[1]>
127.0.0.1:6379[1]> decr run1
(integer) 0
127.0.0.1:6379[1]> decr run1
(integer) -1

127.0.0.1:6379[1]> decrby run1 10
(integer) -11

127.0.0.1:6379[1]> get run7
(nil)
127.0.0.1:6379[1]> append run7 "100"
(integer) 3
127.0.0.1:6379[1]> get run7
"100"
127.0.0.1:6379[1]> get run6
"12.19999999999999929"
127.0.0.1:6379[1]> append run6 "100"
(integer) 23
127.0.0.1:6379[1]> get run6
"12.19999999999999929

三.Redis 哈希(Hash) 

 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。 可以存储 232 - 1 键值对

HSET KEY_NAME FIELD_NAME "foo"     创建一个哈希键字段
HDEL KEY_NAME FIELD1.. FIELDN     删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
HGET KEY_NAME FIELD_NAME  令用于返回哈希表中指定字段的值。
HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER  用于为哈希表中的字段值加上指定增量值。
HINCRBYFLOAT KEY_NAME FIELD_NAME increment   用于为哈希表中的字段值加上指定浮点数增量值。
HKEYS KEY_NAME 用于获取哈希表中的所有域(field)。
HMGET KEY_NAME FIELD1...FIELDN  用于返回哈希表中,一个或多个给定字段的值。
HLEN KEY_NAME  用于获取哈希表中字段的数量。
HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN   用于同时将多个 field-value (字段-值)对设置到哈希表中。

127.0.0.1:6379[1]> hset run1 field1 "foot"
(integer) 0
127.0.0.1:6379[1]> hget run1 field1
"foot"


127.0.0.1:6379[1]> hget run1 cield1
(nil)
127.0.0.1:6379[1]> hsetnx run1 cield1 "qwert"
(integer) 1


127.0.0.1:6379[1]> hvals run1
1) "foot"
2) "5"
3) "3.10000000000000009"
4) "1"
5) "qwert"
127.0.0.1:6379[1]>
 HSET KEY_NAME FIELD VALUE  用于为哈希表中的字段赋值 。
 HSETNX KEY_NAME FIELD VALUE  用于为哈希表中不存在的的字段赋值 。
 HVALS KEY_NAME 返回哈希表所有的值。
127.0.0.1:6379[1]> Hset run1 field1 "foo"
(integer) 1
127.0.0.1:6379[1]> Hdel run1 field1
(integer) 1

127.0.0.1:6379[1]> hset run1 field1 "foo1"
(integer) 0
127.0.0.1:6379[1]> hset run1 field2 "foo1"
(integer) 1
127.0.0.1:6379[1]> hset run1 field3 "foo1"
(integer) 1

127.0.0.1:6379[1]> hexists run1 field1
(integer) 1

127.0.0.1:6379[1]> hget run1 field1
"foo1"
127.0.0.1:6379[1]> hset run1 field2 5
(integer) 0
127.0.0.1:6379[1]> hincrby run1 dield2 1
(integer) 1
127.0.0.1:6379[1]> hget run1 field2
"5"
127.0.0.1:6379[1]> hset run1 field3 "1"
(integer) 0
127.0.0.1:6379[1]> hget run1 field3
"1"
127.0.0.1:6379[1]> hincrby run1 field3 2
(integer) 3
127.0.0.1:6379[1]> hget run1 field3
"3"
127.0.0.1:6379[1]> hincrby run1 field3 -2
(integer) 1
127.0.0.1:6379[1]> hget run1 field3
"1"
127.0.0.1:6379[1]> hincrbyfloat run1 field3 2.1
"3.10000000000000009"

127.0.0.1:6379[1]> hkeys run1
1) "field1"
2) "field2"
3) "field3"
4) "dield2"

127.0.0.1:6379[1]> hlen run1
(integer) 4

127.0.0.1:6379[1]> hmget run1 field1 field2 field3 dield2
1) "foo1"
2) "5"
3) "3.10000000000000009"
4) "1"
127.0.0.1:6379[1]> HMSET myhash field1 "Hello" field2 "World"
OK

127.0.0.1:6379[1]> hkeys myhash
1) "field1"
2) "field2"

HSCAN KEY_NAME cursor [MATCH pattern] [COUNT count]  用于迭代哈希表中的键值对。
  • cursor - 游标。
  • pattern - 匹配的模式。
  • count - 指定从数据集里返回多少元素,默认值为 10 。
127.0.0.1:6379[1]> HSCAN run1 0
1) "0"
2)  1) "field1"
    2) "foot"
    3) "field2"
    4) "5"
    5) "field3"
    6) "3.10000000000000009"
    7) "dield2"
    8) "1"
    9) "cield1"
   10) "qwert"

  四. Redis 列表(List)

  lpush  kye_mame  value  给列表插入键

BLPOP LIST1 LIST2 .. LISTN TIMEOUT   移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
127.0.0.1:6379[3]> lpush run1 "l1"
(integer) 1
127.0.0.1:6379[3]> lpush run1 "l2"
(integer) 2
127.0.0.1:6379[3]> lpush run1 "l3"
(integer) 3
127.0.0.1:6379[3]> blpop run1 run2 run3 10
1) "run1"
2) "l3"
127.0.0.1:6379[3]> blpop run1 100
(nil)
(100.07s)
127.0.0.1:6379[3]> lpush run2 "l1" "l2" "l3"
(integer) 3
127.0.0.1:6379[3]> bRpop run1  10
1) "run1"
2) "l2"
127.0.0.1:6379[3]> bRpop run2  10
1) "run2"
2) "l1"

LINDEX KEY_NAME INDEX_POSITION  用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT   从列表中取出最后一个元素,并插入到另外一个列表的头部; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
LINSERT key BEFORE|AFTER pivot value    用于在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。
LRANGE KEY_NAME START END 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
127.0.0.1:6379[3]> lpush run1 "l1" "l2" "l3"
(integer) 3
127.0.0.1:6379[3]> lindex run1 0
"l3"
127.0.0.1:6379[3]> lindex run1 1
"l2"
127.0.0.1:6379[3]> lindex run1 2
"l1"
127.0.0.1:6379[3]> lindex run1 -2
"l2"
127.0.0.1:6379[3]> lpush run2 "l4" "l5" "l6"
(integer) 3
127.0.0.1:6379[3]> brpoplpush run1 run2 100

127.0.0.1:6379[3]> rpush run1 "hello" "word"
(integer) 4
127.0.0.1:6379[3]> linsert run1 after "word" "l5"
(integer) 5
127.0.0.1:6379[3]> lrange run1 0 -1
1) "l3"
2) "l2"
3) "hello"
4) "word"
5) "l5"
127.0.0.1:6379[3]> linsert run1 before "word" "l5"
(integer) 6
127.0.0.1:6379[3]> lrange run1 0 -1
1) "l3"
2) "l2"
3) "hello"
4) "l5"
5) "word"
6) "l5"
127.0.0.1:6379[3]>
LLEN KEY_NAME 用于返回列表的长度。
  
Lpop KEY_NAME  用于移除并返回列表的第一个元素。

LPUSH KEY_NAME VALUE1.. VALUEN 将一个或多个值插入到列表头部

LPUSH KEY_NAME VALUE1..VALUEN 将一个或多个值插入到列表的尾部(最右边)。

LREM key count VALUE 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
  • count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
  • count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
  • count = 0 : 移除表中所有与 VALUE 相等的值。
127.0.0.1:6379[3]> llen run1
(integer) 6

127.0.0.1:6379[3]> lpop run1
"l3"
127.0.0.1:6379[3]> lrange run1 0 -1
1) "l2"
2) "hello"
3) "l5"
4) "word"
5) "l5"

127.0.0.1:6379[3]> lpush run1 "l3"
(integer) 6
127.0.0.1:6379[3]> lrange run1 0 -1
1) "l3"
2) "l2"
3) "hello"
4) "l5"
5) "word"
6) "l5"

127.0.0.1:6379[3]> lpush run1 "l5"
(integer) 7
127.0.0.1:6379[3]> lrange run1 0 -1
1) "l5"
2) "l3"
3) "l2"
4) "hello"
5) "l5"
6) "word"
7) "l5"

127.0.0.1:6379[3]> lrem run1 -2 "l5"
(integer) 2
127.0.0.1:6379[3]> lrange run1 0 -1
1) "l5"
2) "l3"
3) "l2"
4) "hello"
5) "word"
LSET KEY_NAME INDEX VALUE 通过索引来设置元素的值。
LTRIM KEY_NAME START STOP 让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
RPOP KEY_NAME  用于移除列表的最后一个元素,返回值为移除的元素。
RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME 用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
RPUSHX KEY_NAME VALUE1..VALUEN  将一个值插入到已存在的列表尾部(最右边)。
127.0.0.1:6379[3]> lset run1 0 "change"
OK
127.0.0.1:6379[3]> lrange run1 0 -1
1) "change"
2) "l3"
3) "l2"
4) "hello"
5) "word"

127.0.0.1:6379[3]> ltrim run1 0 3
OK
127.0.0.1:6379[3]> lrange run1 0 -1
1) "change"
2) "l3"
3) "l2"
4) "hello"

127.0.0.1:6379[3]> rpop run1
"hello"
127.0.0.1:6379[3]> lrange run1 0 -1
1) "change"
2) "l3"
3) "l2"
127.0.0.1:6379[3]> lrange run2 0 -1
1) "l1"
2) "l6"
3) "l5"
4) "l4"

127.0.0.1:6379[3]> rpoplpush run1 run2
"l2"
127.0.0.1:6379[3]> lrange run1 0 -1
1) "change"
2) "l3"
127.0.0.1:6379[3]> lrange run2 0 -1
1) "l2"
2) "l1"
3) "l6"
4) "l5"
5) "l4"

127.0.0.1:6379[3]> rpushx run1 "l4"
(integer) 3
127.0.0.1:6379[3]> lrange run1 0 -1
1) "change"
2) "l3"
3) "l4"

五.Redis 集合(Set)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合对象的编码可以是 intset 或者 hashtable。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 2^32- 1 (4294967295, 每个集合可存储40多亿个成员)。

SADD KEY_NAME VALUE1..VALUEN  将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
SCARD KEY_NAME  返回集合中元素的数量。
SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN  返回第一个集合与其他集合之间的差异,也可以认为说第一个集合中独有的元素。不存在的集合 key 将视为空集。
SINTER KEY KEY1..KEYN  返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。
SINTERSTORE DESTINATION_KEY KEY KEY1..KEYN   令将给定集合之间的交集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖。
SISMEMBER KEY VALUE  判断成员元素是否是集合的成员。
SMOVE SOURCE DESTINATION MEMBER  将指定成员 member 元素从 source 集合移动到 destination 集合。
SPOP key [count]  于移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素。
127.0.0.1:6379[3]> select 4
OK
//SADD KEY_NAME VALUE1..VALUEN  将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
127.0.0.1:6379[4]> sadd run1 a b c d
(integer) 4
127.0.0.1:6379[4]> sadd run2 a c
(integer) 2
127.0.0.1:6379[4]> sadd run3 c
(integer) 1
//
127.0.0.1:6379[4]> scard run1
(integer) 4
127.0.0.1:6379[4]> scard run2
(integer) 2
//
127.0.0.1:6379[4]> sdiff run1 run2
1) "b"
2) "d"
//
127.0.0.1:6379[4]> sinter run1 run2
1) "c"
2) "a"
//
127.0.0.1:6379[4]> sinterstore run3 run1 run2
(integer) 2
127.0.0.1:6379[4]> sismember run3 a
(integer) 1
127.0.0.1:6379[4]> sismember run3 c
(integer) 1
//
127.0.0.1:6379[4]> smove run1 run3 b
(integer) 1
127.0.0.1:6379[4]> sismember run3 b
(integer) 1
//
127.0.0.1:6379[4]> spop run1 1
1) "c"
SRANDMEMBER KEY [count]  用于返回集合中的一个随机元素。
SREM KEY MEMBER1..MEMBERN 用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
SUNION KEY KEY1..KEYN   返回给定集合的并集。不存在的集合 key 被视为空集。
SUNIONSTORE destination key [key ...]  将给定集合的并集存储在指定的集合 destination 中。如果 destination 已经存在,则将其覆盖。
SSCAN key cursor [MATCH pattern] [COUNT count] 用于迭代集合中键的元素,Sscan 继承自 Scan。
  • cursor - 游标。
  • pattern - 匹配的模式。
  • count - 指定从数据集里返回多少元素,默认值为 10 。
127.0.0.1:6379[4]> srandmember run1
"a"

127.0.0.1:6379[4]> srem run1 a
(integer) 1

127.0.0.1:6379[4]> sunion run1 run2
1) "d"
2) "a"
3) "c"

127.0.0.1:6379[4]> sunionstore  run2 run1
(integer) 1

127.0.0.1:6379[4]> sscan run1 0
1) "0"
2) 1) "d"
127.0.0.1:6379[4]> sscan run1 0 match r
1) "0"
2) (empty list or set)

六.Redis 有序集合命令

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

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 2^32 - 1 。

ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN  于将一个或多个成员元素及其分数值加入到有序集当中。
ZCOUNT KEY_NAME min max  用于计算有序集合中指定分数区间的成员数量。
ZINCRBY KEY_NAME increment member  对有序集合中指定成员的分数加上增量 increment,可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。
ZSCORE KEY_NAME member 返回有序集中,成员的分数值。
ZREVRANK KEY_NAME member  返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。排名以 0 为底,也就是说, 分数值最大的成员排名为 0 。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]  返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列。具有相同分数值的成员按字典序的逆序(reverse lexicographical order )排列。
ZREVRANGE KEY_NAME start stop [WITHSCORES] 返回有序集中,指定区间内的成员。成员的位置按分数值递减(从大到小)来排列。有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列。
127.0.0.1:6379[4]> zadd top1 1 a 1 b 2 c 3 d 3 e
(integer) 5

127.0.0.1:6379[4]> zcount top1 1 3
(integer) 5

127.0.0.1:6379[4]> zincrby top1 -1 a
"0"

127.0.0.1:6379[4]> zscore top1 d
"3"

127.0.0.1:6379[4]> zrevrank top1  a
(integer) 4

127.0.0.1:6379[4]> zrevrangebyscore top1 3 1
1) "e"
2) "d"
3) "c"
4) "b"

127.0.0.1:6379[4]> zrevrange top1 1 3
1) "d"
2) "c"
3) "b"
ZINTERSTORE destination numkeys KEY_NAME [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max]
  • destination:结果有序集合的名称。
  • numkeys:要计算交集的有序集合的数量。
  • key:参与计算的有序集合的名称。
  • WEIGHTS weight [weight ...]:指定每个有序集合的权重。默认权重为 1。
  • AGGREGATE sum|min|max:指定交集结果的聚合方式。默认是 sum(求和)。
127.0.0.1:6379[4]> zrange top1 0 -1
1) "a"
2) "b"
3) "j"
4) "c"
5) "g"
6) "d"
7) "e"
8) "h"
127.0.0.1:6379[4]> zrange top2 0 -1
1) "f"
2) "g"
3) "h"
4) "k"
5) "j"
127.0.0.1:6379[4]> zinterstore top 2 top1 top2
(integer) 3
127.0.0.1:6379[4]> zrange top 0 -1
1) "g"
2) "j"
3) "h"
ZLEXCOUNT KEY_NAME MIN MAX  计算有序集合中指定字典区间内成员数量。
ZRANGEBYLEX KEY_NAME min max [LIMIT offset count] 用于在有序集合(sorted set)中按照字典序(lexicographical order)获取指定范围内的成员。
  • key:键名,指定要操作的有序集合。
  • min 和 max:字典序范围的边界值。这两个值可以是负无穷大(-)或正无穷大(+),也可以是具体的字符串值。字符串值表示有序集合中成员的字典序边界。
  • LIMIT offset count:可选参数,用于限制返回结果的数量。offset 表示跳过前面多少个元素,count 表示返回多少个元素。
ZRANGEBYSCORE KEY_NAME min max [WITHSCORES] [LIMIT offset count]  返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。
&&&&   ZRANGEBYSCORE zset (1 5   返回所有符合条件 1 < score <= 5 的成员,而
ZRANGE KEY_NAME start stop [WITHSCORES] 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。
127.0.0.1:6379[4]> zlexcount top3 - +
(integer) 6

127.0.0.1:6379[4]> zrangebylex top3 - +
1) "a"
2) "b"
3) "c"
4) "d"
5) "h"
6) "j"

127.0.0.1:6379[4]> zrangebyscore top3 0 4
1) "a"
2) "b"
3) "c"
4) "d"
5) "h"
6) "j"

127.0.0.1:6379[4]> zrange top3 0 4
1) "a"
2) "b"
3) "c"
4) "d"
5) "h"
ZREM KEY_NAME member [member ...] 用于移除有序集中的一个或多个成员,不存在的成员将被忽略。
ZREMRANGEBYLEX KEY_NAME min max  用于移除有序集合中给定的字典区间的所有成员。
ZREMRANGEBYRANK KEY_NAME start stop  用于移除有序集中,指定排名(rank)区间内的所有成员。
ZREMRANGEBYSCORE KEY_NAME min max  用于移除有序集中,指定分数(score)区间内的所有成员。
127.0.0.1:6379[4]> zrange top3 0 4
1) "a"
2) "b"
3) "c"
4) "d"
5) "h"
127.0.0.1:6379[4]> zrem top3 j a
(integer) 2
127.0.0.1:6379[4]> zrange top3 0 -1
1) "b"
2) "c"
3) "d"
4) "h"
127.0.0.1:6379[4]> zremrangebylex top3 [b [c
(integer) 2
127.0.0.1:6379[4]> zrange top3 0 -1
1) "d"
2) "h"
127.0.0.1:6379[4]> zremrangebyrank top3 1 3
(integer) 1
127.0.0.1:6379[4]> zrange top3 0 -1
1) "d"
127.0.0.1:6379[4]> zremrangebyscore top3 0 4
(integer) 1
127.0.0.1:6379[4]> zrange top3 0 -1
(empty list or set)
 ZSCAN KEY_NAME cursor [MATCH pattern] [COUNT count]  于迭代有序集合中的元素(包括元素成员和元素分值)
  • cursor - 游标。
  • pattern - 匹配的模式。
  • count - 指定从数据集里返回多少元素,默认值为 10 。
127.0.0.1:6379[4]> zscan top2 0
1) "0"
2)  1) "f"
    2) "1"
    3) "g"
    4) "2"
    5) "h"
    6) "3"
    7) "k"
    8) "3"
    9) "j"
   10) "4"


http://www.kler.cn/news/341748.html

相关文章:

  • 鸿蒙开发(NEXT/API 12)【硬件(获取智慧出行连接状态)】车载系统
  • 数据库表操作
  • Unity3d动画插件DoTween使用指南
  • JeeSite 权限分配
  • 【ROS】机器人系统仿真-URDF集成Rviz基本流程
  • python全栈开发是什么?
  • mac配置python出现DataDirError: Valid PROJ data directory not found错误的解决
  • 机器学习:神经网络与深度学习的原理、应用场景及优缺点
  • C++模版SFIANE应用踩的一个小坑
  • 复杂项目管理难?试试用WBS分解法,结构化细分你工作
  • 【Webpack--020】Babel辅助代码块引入
  • 系统架构设计师③:数据块系统
  • redistemplate实现点赞相关功能
  • 240604 模板进阶
  • 人检测-目标检测数据集(包括VOC格式、YOLO格式)
  • 每日C#语法题
  • 5.toString()、构造方法、垃圾回收、静态变量与静态方法、单例设计模式、内部类
  • 大贤3D家谱-一键寻找家谱本源
  • 逼近理论及应用精解【11】
  • 11.1 Linux_线程_线程相关函数