Redis对于字符串(String)知识点理解和实操过程例子的详解记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis对于字符串(String)知识点理解和实操过程例子的详解记录相关的知识,希望对你有一定的参考价值。

一.Redis 字符串

1.1基本操作

如果字符串内容为整数的时候。

1.1.1set、mset、get、mget 存和取

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。MSet是基于Set 的基础上,支持添加或者修改多个键值对。

Redis Get 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。MGet是基于Get的基础上,支持获取多个键值对。

实操例子如下:

127.0.0.1:6379> KEYS *
(empty array)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> mset k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

1.1.2append追加数据和strlen查看长度

Redis Append 命令用·于为指定的 key 追加值。如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。

127.0.0.1:6379> append k1 zhibo
(integer) 7
127.0.0.1:6379> get k1
"v1zhibo"

Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。

127.0.0.1:6379> strlen k1
(integer) 7

1.1.3Getrange 字符串截取

Redis Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。

127.0.0.1:6379> getrange k1 -4 -1
"hibo"

1.1.4set .. nx和xx

我们先查询现在的数据库里的数据,我们先使用set k100 v1000 nx,现在k100不存在,所以返回值为ok。如果命令为set k3 v32 xx,只有在目标key存在的时候才返回ok。

127.0.0.1:6379> keys *
1) "k1"
2) "k2"
3) "k3"
127.0.0.1:6379> set k100 v1000 nx
OK
127.0.0.1:6379> set k3 v32 xx
OK
127.0.0.1:6379> set k99 v1313 xx
(nil)
127.0.0.1:6379>

1.2如果字符串的内容为整数的时候

1.2.1 uncr 让value的值增加1

如下,清空一下数据库,然后将key为n1的值赋值为整数123。

然后执行incr n1,查看keyn1的值变为了124。

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> set n1 123
OK
127.0.0.1:6379> incr n1
(integer) 124
127.0.0.1:6379> get n1
"124"

1.2.2uncrby 让value的值增加n

和uncr 类似,在这个基础上支持增加自己的数。

127.0.0.1:6379> incrby n1 100
(integer) 224

1.2.3 decr 和 decrby 减1和减n

decr 和 decrby和uncr和uncrby的情况基本相同,只是把加改为了减法。

1.3 临时键值对

生存时间time to live,缩写为ttl,指键值对距离被删除的剩余秒数如果重新set,生存时间(time to live,ttl)将被重置

以下操作支持各种数据类型

Redis Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的过期时间)返回 0 。

127.0.0.1:6379> expire n1 15
(integer) 1
127.0.0.1:6379> ttl n1
(integer) 12
127.0.0.1:6379> get n1
\\(nil)
127.0.0.1:6379>

在使用键过期功能时,组合使用SET命令和EXPIRE/PEXIRE命令的做法 非常常见,比如展示的带有自动移除特性的缓存程序就是这样做的。

127.0.0.1:6379> set k1 v1 ex 10
OK
127.0.0.1:6379> get k1
(nil)

Redis TTL 命令以秒为单位返回 key 的剩余过期时间。当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间。

**注意:**在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

127.0.0.1:6379> set k1 v1 ex 20
OK
127.0.0.1:6379> set k1 v2 keepttl
OK
127.0.0.1:6379> ttl k1
(integer) 4
127.0.0.1:6379>  set k1 v1 ex 20
OK
127.0.0.1:6379> set k1 v2
OK
127.0.0.1:6379> ttl k1
(integer) -1

以上是关于Redis对于字符串(String)知识点理解和实操过程例子的详解记录的主要内容,如果未能解决你的问题,请参考以下文章

Redis复习

兄弟连学python---Redis基础知识

深入理解pythonpython基础知识之函数

Java核心知识盘点- 缓存使用

读深入理解Java中的String(包括JVM)一文总结和提升

(基本知识)Redis 字符串(String)相关函数