Redis 速览

194 阅读2分钟

数据淘汰策略

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 号数据库