redis的回收策略与分区

redis的内存回收

当redis被用作缓存时,可以使用redis的回收策略自动的回收旧的数据

maxmenmory 用于配置Redis存储数据时指定限制的内存大小

maxmenmory 100mb  #设置maxmemory为0代表没有内存限制。

redis的回收策略:

  • noeviction:当内存达到限制,客户端会返回错误
  • allkeys-lru:回收使用最少的键,使新添加的数据有存放的空间(高效的策略)
  • volatile-lru:在过期集合的键里回收使用最少的键
  • allkeys-random:回收随机的键,使新添加的数据有存放的空间
  • volatile-random:在过期集合的键里回收随机的键,使新添加的数据有存放的空间
  • volatile-ttl:在过期集合的键里优先回收存活时间(TTL)较短的键
Redis的分区

分区是将你的数据分发到不同redis实例上的一个过程,每个redis实例只是你所有key的一个子集

分区的优势:

  • 分区可以让Redis管理更大的内存,redis将可以使用所有机器的内存。如果没有分区,则只能使用一台集器的内存
  • 分区使Redis的计算能力通过计算机的增加得到成倍提升,Redis的网络带宽也会随着计算机和网卡的增加而成倍增长。

分区的缺点:

  • 涉及多个key的操作通常是不被支持的。比如,当两个set映射到不同的redis实例上时,你就不能对这两个set执行交集操作。
  • 同时操作多个key,则不能使用Redis事务。
  • 分区使用的粒度是key,不能使用一个非常长的排序key存储一个数据集
  • 当使用分区时,数据处理较为复杂,比如你需要处理多个rdb/aof文件,并且从多个实例和主机备份持久化文件。
  • 增加或删除容量也比较复杂。redis集群大多数支持在运行时增加、删除节点的透明数据平衡的能力,但是类似于客户端分区、代理等其他系统则不支持这项特性。然而,一种叫做presharding(预分片)的技术对此是有帮助的。

预分区

目的
在redis做缓存时,动态增加/删除redis节点非常麻烦,防止以后的扩容,提前做准备
实现
在一开始的时候在同一台服务器上启动多个redis实例,在数据不断增加以后,需要扩容时,只需将redis的实例从一台服务器迁移到灵台服务器即可,使用redis的主从复制,可以实现不停机扩容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值