Redis Hash基本命令学习

一、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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值