REDIS对键值的基础操作

网友投稿 761 2022-11-09

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

REDIS对键值的基础操作

REDIS对键值的基础操作

我们今天就简单说一说对key的操作,日后的文章就会针对redis的数据类型做一个详细的介绍。

新建一个key,并且赋值

127.0.0.1:6379> set new n1

OK

查看一个key

127.0.0.1:6379> get new

"n1"

删除一个key

127.0.0.1:6379> del new

(integer) 1

127.0.0.1:6379> get new

(nil)

序列化key

dump key

127.0.0.1:6379> set new n1

OK

127.0.0.1:6379> dump new

"\x00\x02n1\b\x00)\xa5t\xbb\xc2\x01\x1a\x16"

序列化key的值,返回被序列化的值,并且使用Restore可以将这个值反向序列化成redis的键。

使用这个序列化的值可以恢复数据到一个新的key当中。使用的方法是restore,我们看下restore的用法。

192.168.1.60:6379> restore key ttl serialized-value [REPLACE]

192.168.1.60:6379> restore new_test 0 "\x00\x02n1\b\x00)\xa5t\xbb\xc2\x01\x1a\x16"

OK

192.168.1.60:6379> get new_test

"n1"

restore 是将序列化的数据反向序列化。使其显示出正常的value,参数ttl为key 的生存时间,单位为ms,超过规定的ttl的时间之后,新的key将会释放掉。

如果ttl设置成0 ,那么这个表不会被释放。

192.168.1.60:6379>  restore new_test1 1000 "\x00\x02n1\b\x00)\xa5t\xbb\xc2\x01\x1a\x16"

OK

192.168.1.60:6379> get new_test1

"n1"

192.168.1.60:6379> get new_test1

(nil)

检验key是否存在

exists key

192.168.1.60:6379> keys *

1) "rr"

2) "name"

3) "new_test"

4) "cui"

5) "foo"

6) "test2"

7) "user:"

8) "test"

9) "new"

10) "test1"

192.168.1.60:6379> exists cui

(integer) 1

192.168.1.60:6379> exists diaosi

(integer) 0

key存在返回1 ,不存在返回0

为key设置过期时间

expire key seconds

192.168.1.60:6379> lpush aa t1

(integer) 1

192.168.1.60:6379> expire aa 10

(integer) 1

192.168.1.60:6379> lpush aa t2

(integer) 2

192.168.1.60:6379> lrange aa 0 100

(empty list or set)

当设置了expire的参数的key会在设置的规定时间当中自动的删除掉,redis有一条这样的规定,如果这个key没有被新的值替代的化,这个key的生存时间是不会改变的,就如我们上面的实例所述,我设置了expire的时间是10s,之后lpush了一个值在key当中,但是到了10s之后key还是被删掉了。

我们现在用新的value覆盖掉之前的key

192.168.1.60:6379> set cui aaaaa

OK

192.168.1.60:6379> expire cui 10

(integer) 1

192.168.1.60:6379> set cui aaa

OK

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

192.168.1.60:6379> get cui

"aaa"

会发现失效的时间就不再生效了。

*注意,如果采用rename的话rename之前的key的话,生存时间和之前的key是一样的。

当然也可以手动将expire取消掉,就是使用persist

192.168.1.60:6379> set cui 1111

OK

192.168.1.60:6379> get cui

"1111"

192.168.1.60:6379> expire cui 10

(integer) 1

192.168.1.60:6379> persist cui

(integer) 1

192.168.1.60:6379> 10S later

(error) ERR unknown command `10S`, with args beginning with: `later`,

192.168.1.60:6379> get cui

"1111"

通过命令ttl key,可以看到过期时间还剩多少

192.168.1.60:6379> expire cui 15

(integer) 1

192.168.1.60:6379> ttl cui

(integer) 13

192.168.1.60:6379> ttl cui

(integer) 11

192.168.1.60:6379> ttl cui

(integer) 10

如果是永久的则这个值是-1

当然expire命令也可以将过期时间的粒度缩短到其他的级别:

expireat key timestamp 以时间戳为单位

pexpire key milliseconds 时间是ms为单位

如果以ms为过期时间的话,查看过期时间使用pttl keys当然这个恐怕没有意义。

查看键的数据类型

使用type key的命令

192.168.1.60:6379> type rr

set

192.168.1.60:6379> type test

hash

192.168.1.60:6379> type user:

hash

192.168.1.60:6379> type new

string

192.168.1.60:6379> type test1

list

that's all

by cui peace !!!

上一篇:IT系统为什么需要可观测性
下一篇:蚂蚁集团SOFAStack入选《中国云原生市场分析》 报告
相关文章

 发表评论

暂时没有评论,来抢沙发吧~