除了运行于内存,便捷高效的特点之外,redis还有什么功能可以在实际工作中运用?
redis的应用场景
- 缓存
- 利用redis的字符串类型完成手机验证码存储、生成订单、认证之后的token信息(时效性)
- 分布式系统中的Session共享
- 分布式锁
- zset类型实现排行榜
持久化操作
持久化的2种方式
1.快照
默认开启的方式,保存为dump.rdb格式,因此快照方式也被称为RDB格式。
方法:
①命令行:BGSAVE
②redis.conf
文件中配置save选项,save 900 1 —表示900秒内如果有1次redis内容更新,则保存一次快照
2.AOF(将所有redis写命令记录到日记)
打开的方法:redis.conf
文件中的appendonly no
修改为yes
频率设置:appendfsync everysec
(推荐)慎用always
AOF虽然能将数据较为完整的保存,最多造成1秒的数据丢失,但是也会面临系统运行时间长导致的AOF文件体积变大的问题,所以redis还提供了AOF重写机制。目的:减小AOF文件体积。
重写原理:将整个内存中的数据用命令的方式重写了一个新的AOF文件,替换旧的AOF文件
操作方法:
①命令行:BGREWRITEAOF
②redis.conf
文件配置:
# 当aof文件达到上次重写后的100%时(一倍),会进行再次重写
auto-aof-rewrite-percentage 100
# 表示最小重写体积为64MB,当aof文件达到64MB时会进行重写
auto-aof-rewrite-min-size 64mb
# 例如
# 第一次达到64MB时进行重写,重写后为20MB,之后达到40MB时,再次触发重写···
Lua脚本高并发限流
- 在 Redis 中执行 Lua 脚本是原子操作。
- 可以通过 Redis + Lua 实现高并发下的限流