数据淘汰策略
redis 内存数据量升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略
-
voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰(推荐)
-
volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰(推荐)
-
volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰(不推荐)
-
allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰(推荐)
-
allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰(不推荐)
-
no-enviction(驱逐):禁止驱逐数据(不推荐)
Redis 事务
跟其他数据库一样, Redis 也提供了事务机制
在 redis 事务中,所以的命令都将串行化顺序执行。 和关系型数据库中的事务不同,在 redis 事务中如果某个命令执行失败,后面的命令依然会被执行
事务相关命令
- 开启事务:
multi在该命令之后的所有命令都会被存到命令队列中,直到你提交事务后,命令队列中的命令开始被原子化执行 - 提交事务:
exec - 回滚事务:
discard
Redis 的多数据库
就像一个 mysql 中可以创建多个数据库一样,一个 redis 实例也可以包含多个数据库。

一个 redis 实例 最多有 16 个数据库,每个数据库还有对应的下标,下标从 0 到 15
客户端连接时,需要指定连接到那个数据库,如果不指定,默认连接到下标为 0 的数据库
连接到指定数据库后,才可以执行跟数据相关的各种命令
常用命令
- 选择要连接的数据库:
select 2选择下标为2的数据库 - 移动键到另一个数据库:
move 键 数据库下标例如 move name 1 表示将 name 移动到 1 号数据库