Redis Hash和List常用命令
Hash
1. HSET 命令
127.0.0.1:6379> hset book history "story"
(integer) 1
2. HSETNX 命令:为哈希表不存在的域设值
使用 HSETNX 命令当且仅当域 field 不存在时,将哈希表 key 中的 field 的值设置为 value。如果 field 已经存在,那么 HSETNX 命令将会执行无效。
3. HMSET 命令:设置多个域和值到哈希表中
4. HGET 命令:获取哈希表中域的值
5. HGETALL 命令:获取哈希表中所有的域和值
6. HMGET 命令:获取多个域的值
127.0.0.1:6379> hget book history
"story"
127.0.0.1:6379> hgetall book
1) "history"
2) "story"
7. HKEYS 命令:获取哈希表中的所有域
8. HVALS 命令:获取哈希表中所有域的值
9. HLEN 命令:统计哈希表中域的数量
127.0.0.1:6379> hlen book
(integer) 1
10. HSTRLEN 命令:统计域的值的字符串长度
11. HINCRBY 命令:为哈希表中的域加上增量值
12. HINCRBYFLOAT 命令:为哈希表中的域加上浮点数增量值
13. HDEL 命令:删除哈希表中的多个域
14. HEXISTS 命令:判断哈希表中的域是否存在
List
1. LPUSH 命令:将多个值插入列表头部
2. RPUSH 命令:将多个值插入列表尾部
127.0.0.1:6379> lpush bookorder 12 13 15
(integer) 3
127.0.0.1:6379> rpush bookorder 100
(integer) 4
3. LINSERT 命令:插入一个值到列表中
127.0.0.1:6379> linsert bookorder before 3 200
(integer) -1
127.0.0.1:6379> linsert bookorder before 13 200
(integer) 5
4. LPUSHX 命令:将值插入列表头部
LPUSHX 命令用于将 value 值插入列表 key 的头部,此时 key 必须存在,并且是列表类型的。LPUSHX 命令与 LPUSH 命令相反,当 key 不存在时,LPUSHX 命令不会创建一个新的空列表,它什么也不做。
5. RPUSHX 命令:将值插入列表尾部
6. LSET 命令:修改列表元素值
127.0.0.1:6379> lset bookorder 2 0
OK
7. LLEN 命令:统计列表的长度
8. LINDEX 命令:获取列表元素的值
9. LRANGE 命令:获取列表指定区间内的元素
127.0.0.1:6379> llen bookorder
(integer) 5
127.0.0.1:6379> lindex bookorder 2
"0"
127.0.0.1:6379> lrange bookorder 0 -1
1) "15"
2) "200"
3) "0"
4) "12"
5) "100"
10. LPOP 命令:返回并删除列表的头元素
11. RPOP 命令:返回并删除列表的尾元素
12. BLPOP 命令:在指定时间内删除列表的头元素(阻塞timeout后删除头元素)
blpop key timeout
返回值:如果在指定的 timeout 时间内没有返回任何元素,则将会返回 nil 和等待时长。而如果在 timeout 时间内返回一个列表,那么这个列表中的第一个元素表示被返回元素所属的 key,第二个元素表示被返回元素的值。
13. BRPOP 命令:在指定时间内删除列表的尾元素(阻塞,同上)
127.0.0.1:6379> lpop bookorder
"15"
127.0.0.1:6379> rpop bookorder
"100"
127.0.0.1:6379> lrange bookorder 0 -1
1) "200"
2) "0"
3) "12"
127.0.0.1:6379> blpop bookorder 15
1) "bookorder"
2) "200"
14. LREM 命令:删除指定个数的元素
lrem key count value
LREM 命令用于根据参数 count 的值,删除列表 key 中与指定参数 value 相等的元素。
● 当 count 等于 0 时,表示删除列表 key 中所有与 value 相等的元素。
● 当 count 大于 0 时,表示从列表 key 的表头开始向表尾搜索,删除与 value 相等的元素,删除的数量为 count 个。
● 当 count 小于 0 时,表示从列表 key 的表尾开始向表头搜索,删除与 value 相等的元素,删除的数量为 count 的绝对值个。
返回值:当列表 key 存在时,执行该命令后,返回被删除的元素数量。当列表 key 不存在时,就是一个空列表,该命令始终返回 0。
15. **LTRIM 命令:留下指定区间的元素
127.0.0.1:6379> lrange bookorder 0 -1
1) "0"
2) "12"
127.0.0.1:6379> ltrim bookorder 0 0
OK
127.0.0.1:6379> lrange bookorder 0 -1
1) "0"
16. RPOPLPUSH 命令:将列表元素移动到另一列表中
17. BRPOPLPUSH 命令:在指定时间内移动列表元素到另一列表中