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

[复制链接]
发表于 2025-11-2 14:05:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一.Redis 字符串



1.1根本使用




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

1.1.1set、mset、get、mget 存和取

Redis 的 Set 是 String 范例的无序聚集。聚集成员是唯一的,这就意味着聚集中不能出现重复的数据。MSet是基于Set 的根本上,支持添加大概修改多个键值对。
Redis Get 下令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串范例,返回一个错误。MGet是基于Get的根本上,支持获取多个键值对。
实操例子如下:
  1. 127.0.0.1:6379> KEYS *
  2. (empty array)
  3. 127.0.0.1:6379> set k1 v1
  4. OK
  5. 127.0.0.1:6379> get k1
  6. "v1"
  7. 127.0.0.1:6379> mset k2 v2 k3 v3
  8. OK
  9. 127.0.0.1:6379> mget k1 k2 k3
  10. 1) "v1"
  11. 2) "v2"
  12. 3) "v3"
复制代码
1.1.2append追加数据和strlen查察长度

Redis Append 下令用·于为指定的 key 追加值。如果 key 已经存在而且是一个字符串, APPEND 下令将 value 追加到 key 原来的值的末端。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像实行 SET key value 一样。
  1. 127.0.0.1:6379> append k1 zhibo
  2. (integer) 7
  3. 127.0.0.1:6379> get k1
  4. "v1zhibo"
复制代码
Redis Strlen 下令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
  1. 127.0.0.1:6379> strlen k1
  2. (integer) 7
复制代码
1.1.3Getrange 字符串截取

Redis Getrange 下令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包罗 start 和 end 在内)。
  1. 127.0.0.1:6379> getrange k1 -4 -1
  2. "hibo"
复制代码
1.1.4set … nx和xx


我们先查询现在的数据库里的数据,我们先使用set k100 v1000 nx,现在k100不存在,以是返回值为ok。如果下令为set k3 v32 xx,只有在目的key存在的时间才返回ok。
  1. 127.0.0.1:6379> keys *
  2. 1) "k1"
  3. 2) "k2"
  4. 3) "k3"
  5. 127.0.0.1:6379> set k100 v1000 nx
  6. OK
  7. 127.0.0.1:6379> set k3 v32 xx
  8. OK
  9. 127.0.0.1:6379> set k99 v1313 xx
  10. (nil)
  11. 127.0.0.1:6379>
复制代码
1.2如果字符串的内容为整数的时间


1.2.1 uncr 让value的值增长1


如下,清空一下数据库,然后将key为n1的值赋值为整数123。
然后实行incr n1,查察keyn1的值变为了124。
  1. 127.0.0.1:6379> flushdb
  2. OK
  3. 127.0.0.1:6379> set n1 123
  4. OK
  5. 127.0.0.1:6379> incr n1
  6. (integer) 124
  7. 127.0.0.1:6379> get n1
  8. "124"
复制代码
1.2.2uncrby 让value的值增长n


和uncr 雷同,在这个根本上支持增长自己的数。
  1. 127.0.0.1:6379> incrby n1 100
  2. (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 。
  1. 127.0.0.1:6379> expire n1 15
  2. (integer) 1
  3. 127.0.0.1:6379> ttl n1
  4. (integer) 12
  5. 127.0.0.1:6379> get n1
  6. \(nil)
  7. 127.0.0.1:6379>
复制代码
在使用键逾期功能时,组合使用SET下令和EXPIRE/PEXIRE下令的做法 非常常见,比如展示的带有主动移除特性的缓存步调就是如许做的。
  1. 127.0.0.1:6379> set k1 v1 ex 10
  2. OK
  3. 127.0.0.1:6379> get k1
  4. (nil)
复制代码
Redis TTL 下令以秒为单元返回 key 的剩余逾期时间。当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单元,返回 key 的剩余生存时间。

**注意:**在 Redis 2.8 从前,当 key 不存在,大概 key 没有设置剩余生存时间时,下令都返回 -1 。
  1. 127.0.0.1:6379> set k1 v1 ex 20
  2. OK
  3. 127.0.0.1:6379> set k1 v2 keepttl
  4. OK
  5. 127.0.0.1:6379> ttl k1
  6. (integer) 4
  7. 127.0.0.1:6379>  set k1 v1 ex 20
  8. OK
  9. 127.0.0.1:6379> set k1 v2
  10. OK
  11. 127.0.0.1:6379> ttl k1
  12. (integer) -1
复制代码
总结

本文全面先容了 Redis 字符串范例的根本使用,包罗常用的存取、修改、截取以及键值逾期管理等功能。通过学习 Redis 提供的下令如 SET、GET、APPEND、INCR 等,我们可以或许高效地在 Redis 中处理处罚字符串范例的数据。同时,文章还深入探究了怎样使用 NX 和 XX 标记位来控制键值对的存储条件,资助我们更机动地使用 Redis 数据库。
特别地,我们还具体分析了字符串内容为整数时的使用,如 INCR 和 DECR 等自增自减下令,这使得 Redis 在处理处罚计数器、数字累加等场景时变得极为高效。别的,Redis 的 TTL 和 EXPIRE 下令为我们提供了设置键值对生存时间的功能,使得 Redis 可以或许在缓存管理、临时存储等场景中更具上风。
通过本文的先容,读者可以把握 Redis 字符串使用的核心下令,并可以或许机动应用于现实的开发和运维中,提拔 Redis 的使用服从。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表