Redis配置
Redis可以使用内置的默认配置文件,但只能用来测试和开发。因此,最好自己配置Redis配置文件,通常叫做redis.conf。也可以直接使用命令行传送Redis配置参数,但一般用来测试。这时,会在内部生成的一个临时内存配置文件,文件参数会被翻译成redis.conf的格式。
运行时更改配置:
使用命令 CONFIG SET和CONFIG GET,如果更改的配置没有对redis.conf产生影响,重启的Redis还是会使用原来的配置文件。需要使用CONFIG SET确保修改了redis.conf。
配置Redis作为缓存:
每个key需要一个过期集合。
maxmemory 2mb maxmemory-policy allkeys-lru
当超过2M的限制后,使用LRU算法除去key。
如果需要存储数据,可以在创建一个实例作为存储,根据你的持久性的需求配置和只保存不与缓存数据相关的key。
Redis设置注意事项
1. 使用Linux
2. 将Linux内核的overcommit memory设置1。添加vm.overcommit_memory=1到/etc/sysctl.conf或者使用命令sysctlvm.overcommit_memory=1
3. 设置swap内存。如果Linux没有swap,Redis实例消耗了太多内存,Redis会由于内存不足崩溃或者Linux内核的OOM killer会杀死Redis进程
4. 如果Redis处理写负载较重的应用时,在磁盘上保存RDB文件或者重写AOF日志会使用2倍于通常使用的内存。额外的内存用来成比例的存储一定数量被写操作改变的内存页,因此,同时也会影响一定比例数量的key
5. 即使关闭持久化,在使用复制时,Redis会执行RDB保存
6. Redis持久化不推荐使用EC2 EBS卷,EBS性能较低。使用临时存储保存持久化,如果可能将持久化文件移到EBS
7. 使用虚拟机部署Redis,虚拟化管理程序调用fork()很慢。根据数据集大小,阻塞Redis几毫秒到几秒。
不停机升级和重启Redis实例:
目前为止,绝大数情况在不停止Redis修改配置的方法使用 CONFIG SET命令常用方式:
1. 为你当前的Redis实例设置一个从Redis实例。需要不同的服务器或者一台足够内存的服务器2. 如果在一台服务器,确保在不同的端口启动
3. 等待复制初始同步完成4. 使用INFO确保主从实例含有同样数量的key,使用redis-cli检测从服务器是否如你所愿的工作和回复命令
5. 配置客户端使用从实例6. 当你确定主实例不在接受任何查询(使用MONITOR命令检查),用SLAVEOF NO ONE命令执行升级从实例为主实例,然后关闭主实例。
主从复制
Redis主从复制的特性: