前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 系列(2) —— Redis 的字符串

Redis 系列(2) —— Redis 的字符串

作者头像
求和小熊猫
发布2021-09-10 10:48:06
3390
发布2021-09-10 10:48:06
举报

Redis 字符串相关命令

1. 设置 Redis 的的值

设置 Redis 值的命令格式为 set key value [ex seconds | px milliseconds | keepttl] [nx|xx]

  • ex: 设置键的秒级过期时间
  • px: 设置键的毫秒级过期时间
  • keepttl:
  • nx: 键必须不存在才可以设置成功
  • xx: 键必须存在才可以设置成功

【示例】

代码语言:javascript
复制
#  设置键值对
127.0.0.1:6379> set hello world
OK

PS: setxx key valuesetnx key value

2. 获取字符串的值

获取字符串的命令格式为 get key 【示例】

代码语言:javascript
复制
#  获取字符串的值
127.0.0.1:6379> get hello
"world"
3. 查看键是否存在

查看键是否存在的命令格式为exists key [key ...]

代码语言:javascript
复制
# 查看 key 是否存在
127.0.0.1:6379> exists hello
(integer) 1
127.0.0.1:6379> exists hello hello
(integer) 2
4. 设置多个值

设置多个值的命令格式为 mset key value [key value ...] 【示例】

代码语言:javascript
复制
# 设置多个值
127.0.0.1:6379> mset test1 demo1 test2 demo2 test3 demo3
OK
5. 获取多个值

获取多个值的命令格式为 mget key [key ...] 【示例】

代码语言:javascript
复制
# 获取多个值
127.0.0.1:6379> mget hello test1 test2 test3
1) "world"
2) "demo1"
3) "demo2"
4) "demo3"
6. 获取字符串长度

获取字符串长度的命令格式为 strlen key 【示例】

代码语言:javascript
复制
# 获取字符串长度
127.0.0.1:6379> strlen hello
(integer) 5
7. 删除键值对

删除键值对的命令格式为 del key [key] 【示例】

代码语言:javascript
复制
# 删除键值对
127.0.0.1:6379> del test3
(integer) 1
8. 在键不存在情况下设置值

在键不存在的情况下设置值setnx key valuemsetnx key value [key value ...]

9. 获取字符串指定索引范围上的内容

获取字符串值指定索引范围上的内容的命令格式为 getrange key start end 【示例】

代码语言:javascript
复制
# 获取字符串索引指定范围上的内容
127.0.0.1:6379> getrange test1 2 4
"mo1"
10. 对字符串的指定索引范围进行设置

对字符串的指定索引范围进行设置的命令格式为 setrange key offset value 【示例】

代码语言:javascript
复制
# 对字符串的指定索引范围进行设置
127.0.0.1:6379> setrange test1 2 mmmmmmmmm
(integer) 11
127.0.0.1:6379> get test1
"demmmmmmmmm"
11. 追加新内容到值的末尾

追加值到内容末尾的的命令格式为append key value 【示例】

代码语言:javascript
复制
# 追加新内容到值的末尾
127.0.0.1:6379> append test2 asr
(integer) 8
127.0.0.1:6379> get test2
"demo2asr"
12. 对数的增减

对整数增减命令格式为 incrby key incrementdecrby key decrment 自增自减命令为 incr keydecr key 对浮点数的增加命令格式为 incrbyfloat key increment

PSRedis没有对浮点数的减法命令

【示例】

代码语言:javascript
复制
127.0.0.1:6379> set number 5000
OK
127.0.0.1:6379> incrby number 50
(integer) 5050
127.0.0.1:6379> decrby number 50
(integer) 5000
127.0.0.1:6379> incr number
(integer) 5001
127.0.0.1:6379> decr number
(integer) 5000

Redis 字符串的使用方式

1. 缓存

缓存是 Redis 的典型使用场景,其中 Redis 作为缓存层,mysql 作为存储层,绝大部分请求数据都是从 Redis 中获取。由于 Redis 具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。

在这里插入图片描述
在这里插入图片描述
2. 计数器

许多应用都会使用 Redis 作为技术的基础工具,他可以实现快计数,,查询缓存的功能,同事可以异步到其他数据源。

3. 共享 Session

分布式 Web 服务将用户的 Session 信息保存在各自服务器中,这样会造成一个问题,处于负载均衡的考虑,分布式服务将会将用户的访问均衡到不同的服务器上,用户刷新一次访问可能会发现需要重新登陆,这个问题是用户无法容忍的。

为了解决这个问题,可以视同 Redis 将用户的 Session 进行集中管理。

在这里插入图片描述
在这里插入图片描述
4. ID 生成器

在共建应用程序时,我们经常会用到各式各样的 ID。 比如,存储用户信息时,每出现一个新用户是就需要创建一个新的用户 ID。 ID 通常会以数字形式出现,并且通过递增的方式来创建新的 ID。那么我们便可以使用 Redis 的自增命令来实现一个 ID 生成器。

5. 限速器

很多应用处于安全考虑会在每次进行登录时,让用户输入手机验证码,从而确定是否是用户本人,但是为了短信接口不被频繁访问,会限制用户每分中获取验证码的频率。我们可以使用 Redis 分布式锁的概念来进行限速

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis 字符串相关命令
    • 1. 设置 Redis 的的值
      • 2. 获取字符串的值
        • 3. 查看键是否存在
          • 4. 设置多个值
            • 5. 获取多个值
              • 6. 获取字符串长度
                • 7. 删除键值对
                  • 8. 在键不存在情况下设置值
                    • 9. 获取字符串指定索引范围上的内容
                      • 10. 对字符串的指定索引范围进行设置
                        • 11. 追加新内容到值的末尾
                          • 12. 对数的增减
                          • Redis 字符串的使用方式
                            • 1. 缓存
                              • 2. 计数器
                                • 3. 共享 Session
                                  • 4. ID 生成器
                                    • 5. 限速器
                                    相关产品与服务
                                    云数据库 Redis
                                    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档