设置 Redis 值的命令格式为 set key value [ex seconds | px milliseconds | keepttl] [nx|xx]
【示例】
# 设置键值对
127.0.0.1:6379> set hello world
OK
PS:
setxx key value
与setnx key value
获取字符串的命令格式为 get key
【示例】
# 获取字符串的值
127.0.0.1:6379> get hello
"world"
查看键是否存在的命令格式为exists key [key ...]
# 查看 key 是否存在
127.0.0.1:6379> exists hello
(integer) 1
127.0.0.1:6379> exists hello hello
(integer) 2
设置多个值的命令格式为 mset key value [key value ...]
【示例】
# 设置多个值
127.0.0.1:6379> mset test1 demo1 test2 demo2 test3 demo3
OK
获取多个值的命令格式为 mget key [key ...]
【示例】
# 获取多个值
127.0.0.1:6379> mget hello test1 test2 test3
1) "world"
2) "demo1"
3) "demo2"
4) "demo3"
获取字符串长度的命令格式为 strlen key
【示例】
# 获取字符串长度
127.0.0.1:6379> strlen hello
(integer) 5
删除键值对的命令格式为 del key [key]
【示例】
# 删除键值对
127.0.0.1:6379> del test3
(integer) 1
在键不存在的情况下设置值setnx key value
或 msetnx key value [key value ...]
获取字符串值指定索引范围上的内容的命令格式为 getrange key start end
【示例】
# 获取字符串索引指定范围上的内容
127.0.0.1:6379> getrange test1 2 4
"mo1"
对字符串的指定索引范围进行设置的命令格式为 setrange key offset value
【示例】
# 对字符串的指定索引范围进行设置
127.0.0.1:6379> setrange test1 2 mmmmmmmmm
(integer) 11
127.0.0.1:6379> get test1
"demmmmmmmmm"
追加值到内容末尾的的命令格式为append key value
【示例】
# 追加新内容到值的末尾
127.0.0.1:6379> append test2 asr
(integer) 8
127.0.0.1:6379> get test2
"demo2asr"
对整数增减命令格式为 incrby key increment
、decrby key decrment
自增自减命令为 incr key
、decr key
对浮点数的增加命令格式为 incrbyfloat key increment
PSRedis没有对浮点数的减法命令
【示例】
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 的典型使用场景,其中 Redis 作为缓存层,mysql 作为存储层,绝大部分请求数据都是从 Redis 中获取。由于 Redis 具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。
许多应用都会使用 Redis 作为技术的基础工具,他可以实现快计数,,查询缓存的功能,同事可以异步到其他数据源。
分布式 Web 服务将用户的 Session 信息保存在各自服务器中,这样会造成一个问题,处于负载均衡的考虑,分布式服务将会将用户的访问均衡到不同的服务器上,用户刷新一次访问可能会发现需要重新登陆,这个问题是用户无法容忍的。
为了解决这个问题,可以视同 Redis 将用户的 Session 进行集中管理。
在共建应用程序时,我们经常会用到各式各样的 ID。 比如,存储用户信息时,每出现一个新用户是就需要创建一个新的用户 ID。 ID 通常会以数字形式出现,并且通过递增的方式来创建新的 ID。那么我们便可以使用 Redis 的自增命令来实现一个 ID 生成器。
很多应用处于安全考虑会在每次进行登录时,让用户输入手机验证码,从而确定是否是用户本人,但是为了短信接口不被频繁访问,会限制用户每分中获取验证码的频率。我们可以使用 Redis 分布式锁的概念来进行限速