一、hash命令学习
127.0.0.1:6379> hmset key field value [field value ...]
hmset 同时将多个field - value(域-值)对设置到哈希表key中。此命令会覆盖哈希表中已存在的域。如果key不存在,一个空哈希表
被创建并执行HMSET操作。
127.0.0.1:6379> hdel key field [field ...]
删除一个或多个哈希表字段
127.0.0.1:6379> hexists key field
查看哈希表 key 中,指定的字段是否存在。
127.0.0.1:6379> hget key field
获取存储在哈希表中指定字段的值。
127.0.0.1:6379> hgetall key
返回哈希表key中,所有的域和值。在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大
小的两倍。
127.0.0.1:6379> hincrby key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。
127.0.0.1:6379> hincrbyfloat key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
127.0.0.1:6379> hkeys key
获取所有哈希表中的字段
127.0.0.1:6379> hlen key
获取哈希表中字段的数量
127.0.0.1:6379> hmget key field [field]
返回哈希表key中,一个或多个给定域的值。如果给定的域不存在于哈希表,那么返回一个nil值。因为不存在的key被当作一个空哈希
表来处理,所以对一个不存在的key进行HMGET操作将返回一个只带有nil值的表。
127.0.0.1:6379> hset key field value
将哈希表key中的域field的值设为value。如果key不存在,一个新的哈希表被创建并进行HSET操作。如果域field已经存在于哈希表
中,旧值将被覆盖。
127.0.0.1:6379> hsetnx key field value
只有在字段 field 不存在时,设置哈希表字段的值。
127.0.0.1:6379> hvals key
获取哈希表中所有值
127.0.0.1:6379> hscan key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。
127.0.0.1:6379> hmset person id 1 name zxk age 22 addr beijing email tail@tail.com
OK
127.0.0.1:6379> hget person id
"1"
127.0.0.1:6379> hgetall person
1) "id"
2) "1"
3) "name"
4) "zxk"
5) "age"
6) "22"
7) "addr"
8) "beijing"
9) "email"
10) "tail@tail.com"
127.0.0.1:6379> hget person email
"tail@tail.com"
127.0.0.1:6379> hdel person email
(integer) 1
127.0.0.1:6379> hget person email
(nil)
127.0.0.1:6379> hexists person id
(integer) 1
127.0.0.1:6379> hexists person email
(integer) 0
127.0.0.1:6379> hget person age
"22"
127.0.0.1:6379> hincrby person age 2
(integer) 24
127.0.0.1:6379> hget person age
"24"
127.0.0.1:6379> hkeys person
1) "id"
2) "name"
3) "age"
4) "addr"
127.0.0.1:6379> hlen person
(integer) 4
127.0.0.1:6379> hmget person id name
1) "1"
2) "zxk"
127.0.0.1:6379> hmget person id name desc
1) "1"
2) "zxk"
3) (nil)
127.0.0.1:6379> hget person email
(nil)
127.0.0.1:6379> hget person id
"1"
127.0.0.1:6379> hsetnx person email tail@tail.com
(integer) 1
127.0.0.1:6379> hsetnx person id 2
(integer) 0
127.0.0.1:6379> hget person id
"1"
127.0.0.1:6379> hget person email
"tail@tail.com"
127.0.0.1:6379> hvals person
1) "1"
2) "zxk"
3) "24"
4) "beijing"
5) "tail@tail.com"
二、 list命令的基本使用
BLPOP key [key ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
命令会以从左到右的顺序,访问给定的各个列表,并弹出首个非空列表最左端的项;
如果所有给定列表都为空,那么客户端将被阻塞,直到等待超时,或者有可弹出的元素出现为止;
设置 timeout 参数为 0 表示永远阻塞。
BRPOP key [key ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
命令会以从左右到左的顺序,访问给定的各个列表,并弹出首个非空列表最右端的项;
如果所有给定列表都为空,那么客户端将被阻塞,直到等待超时,或者有可弹出的项出现为止;
设置 timeout 参数为 0 表示永远阻塞。
BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
LINDEX key index
通过索引获取列表中的元素
LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
LLEN key
获取列表长度
LPOP key
移出并获取列表的第一个元素
LPUSH key value [value]
将一个或多个值插入到列表头部
LPUSHX key value
将一个或多个值插入到已存在的列表头部
LRANGE key start stop
获取列表指定范围内的元素
LREM key count value
根据参数 count 的值,移除列表中与参数 value 相等的列表项:
• 如果 count > 0 ,那么从表头开始向表尾搜索,移除最多 count 个值为 value 的列表项。
• 如果 count < 0 ,那么从表尾开始向表头搜索,移除最多 abs(count) 个值为 value 的列表项。
• 如果 count = 0 ,那么移除列表中所有值为 value 的列表项。
LSET key index value
通过索引设置列表元素的值
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
RPOP key
移除并获取列表最后一个元素
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
RPUSH key value [value]
在列表中添加一个或多个值
RPUSHX key value
为已存在的列表添加值
127.0.0.1:6379> lpush person zmk
(integer) 1
127.0.0.1:6379> lpush person zw
(integer) 2
127.0.0.1:6379> lpush person zmk
(integer) 3
127.0.0.1:6379> lrange person 0 3
1) "zmk"
2) "zw"
3) "zmk"
127.0.0.1:6379> rpush person zxk
(integer) 4
127.0.0.1:6379> rpush person zx
(integer) 5
127.0.0.1:6379> lrange person 0 -1
1) "zmk"
2) "zw"
3) "zmk"
4) "zxk"
5) "zx"
127.0.0.1:6379> llen person
(integer) 5
127.0.0.1:6379> lpop person
"zmk"
127.0.0.1:6379> lrange person 0 5
1) "zw"
2) "zmk"
3) "zxk"
4) "zx"
127.0.0.1:6379> rpop person
"zx"
127.0.0.1:6379> lrange person 0 5
1) "zw"
2) "zmk"
3) "zxk"
127.0.0.1:6379> llen person
(integer) 3
127.0.0.1:6379> lindex person 1
"zmk"
127.0.0.1:6379> lindex person -1
"zxk"
127.0.0.1:6379> lindex person 0
"zw"
127.0.0.1:6379> lpush addr beijing nanjjing shagnhai tianjin
(integer) 4
127.0.0.1:6379> lrange addr 0 -1
1) "tianjin"
2) "shagnhai"
3) "nanjjing"
4) "beijing"
127.0.0.1:6379> lset addr 2 wuhan
OK
27.0.0.1:6379> lrange addr 0 -1
1) "tianjin"
2) "shagnhai"
3) "wuhan"
4) "beijing"
127.0.0.1:6379> lrange addr 0 5
1) "tianjin"
2) "shagnhai"
3) "wuhan"
4) "beijing"
127.0.0.1:6379> lrange desc 0 -1
(empty list or set)
127.0.0.1:6379> rpush desc i like you
(integer) 3
127.0.0.1:6379> linsert desc before like do
(integer) 4
127.0.0.1:6379> lrange desc 0 -1
1) "i"
2) "do"
3) "like"
4) "you"
127.0.0.1:6379> linsert desc after do not
(integer) 5
127.0.0.1:6379> lrange desc 0 -1
1) "i"
2) "do"
3) "not"
4) "like"
5) "you"
127.0.0.1:6379> lpush addr beijing nanjing tianjing wuhan shanghai wuhan shagnhai beijing tianjing wuhan
(integer) 10
127.0.0.1:6379> lrange addr 0 -1
1) "wuhan"
2) "tianjing"
3) "beijing"
4) "shagnhai"
5) "wuhan"
6) "shanghai"
7) "wuhan"
8) "tianjing"
9) "nanjing"
10) "beijing"
127.0.0.1:6379> lrem addr 2 wuhan
(integer) 2
127.0.0.1:6379> lrange addr 0 -1
1) "tianjing"
2) "beijing"
3) "shagnhai"
4) "shanghai"
5) "wuhan"
6) "tianjing"
7) "nanjing"
8) "beijing"
127.0.0.1:6379> lset addr 2 shanghai
OK
127.0.0.1:6379> lrange addr 0 -1
1) "tianjing"
2) "beijing"
3) "shanghai"
4) "shanghai"
5) "wuhan"
6) "tianjing"
7) "nanjing"
8) "beijing"
127.0.0.1:6379> lpush addr wuhan beijing tianjing wuhan shanghai
(integer) 13
127.0.0.1:6379> lrange addr 0 -1
1) "shanghai"
2) "wuhan"
3) "tianjing"
4) "beijing"
5) "wuhan"
6) "tianjing"
7) "beijing"
8) "shanghai"
9) "shanghai"
10) "wuhan"
11) "tianjing"
12) "nanjing"
13) "beijing"
127.0.0.1:6379> lrem addr -2 beijing
(integer) 2
127.0.0.1:6379> lrange addr 0 -1
1) "shanghai"
2) "wuhan"
3) "tianjing"
4) "beijing"
5) "wuhan"
6) "tianjing"
7) "shanghai"
8) "shanghai"
9) "wuhan"
10) "tianjing"
11) "nanjing"
127.0.0.1:6379> lrem addr 0 shanghai
(integer) 3
127.0.0.1:6379> lrange addr 0 -1
1) "wuhan"
2) "tianjing"
3) "beijing"
4) "wuhan"
5) "tianjing"
6) "wuhan"
7) "tianjing"
127.0.0.1:6379> ltrim addr 0 4
OK
127.0.0.1:6379> lrange addr 0 -1
1) "wuhan"
2) "tianjing"
3) "beijing"
4) "wuhan"
5) "tianjing"
127.0.0.1:6379> ltrim addr 0 -1
OK
127.0.0.1:6379> lrange addr 0 -1
1) "wuhan"
2) "tianjing"
3) "beijing"
4) "wuhan"
5) "tianjing"
127.0.0.1:6379> lrange addr 2 5
1) "beijing"
2) "wuhan"
3) "tianjing"
127.0.0.1:6379> ltrim addr 2 5
OK
127.0.0.1:6379> lrange addr 0 -1
1) "beijing"
2) "wuhan"
3) "tianjing"
127.0.0.1:6379> blpop addr 10
1) "addr"
2) "beijing"
127.0.0.1:6379> blpop addr 10
1) "addr"
2) "wuhan"
127.0.0.1:6379> blpop addr 10
1) "addr"
2) "tianjing"
127.0.0.1:6379> blpop addr 10
(nil)
(10.03s)
参考博客:https://blog.csdn.net/m_joes_17/article/details/80454246
https://www.redis.net.cn/order/3578.html
https://www.runoob.com/redis/redis-lists.html