redis配置之内存设置
简介
redis 服务主要的操作都是在内存里面,而内存相对于磁盘还是小很多,因此调控好内存使用很重要。
最大使用内存
默认 redis 可以使用主机上的所有内存。如果一台机子上有多个实例,就不可能让redis使用系统的所有内存,况且操作系统也是需要一部分内存。
maxmemory 5gb
……
人生苦短,Let's Go ! Python ...
redis 服务主要的操作都是在内存里面,而内存相对于磁盘还是小很多,因此调控好内存使用很重要。
默认 redis 可以使用主机上的所有内存。如果一台机子上有多个实例,就不可能让redis使用系统的所有内存,况且操作系统也是需要一部分内存。
maxmemory 5gb
……
迁移 codis 节点,要保证数据不丢失。
要将整个集群迁移就要连接,集群里有哪些数据?proxy 是怎么找到数据在哪个后端节点的?有必要迁移 zookeeper 数据吗?
……Codis 集群可以根据需要进行扩容或者收缩节点。
将 codis 的安装包解压出来,只需要配置 codis-server(修改的 redis-server),设置好配置文件,直接启动服务,然后通过 dashboard 直接添加即可。
……codis-proxy 是 codis 集群的代理转发的应用,可以通过dashboard对codis-proxy进行操作,codis-proxy上不存储数据,数据都在zookeeper上,。
如果集群设置了密码,需要对应修改的配置文件参数是 product_auth,集群名称 product_name 要一致。session_auth 是 proxy 节点的验证,可以跟其他密码不一样。
……集群需要依赖于 zookeeper 或者 etcd 服务。这里使用的是 zookeeper 。
zookeeper 最好选择使用集群模式部署,提高可用性。
codis-dashboard 通过操作 zookeeper 保存 dashboard、proxy、slot 等相关信息。
通过 codis-dashboard 可以添加 codis-proxy、codis-server、分组、sentinel、迁移 slot 等。
codis-fe 可以通过 zookeeper,获取对应的信息,来展示,并获取 dashboard 地址,来进行控制。
……Redis 不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列。
由于 Redis 的列表是使用双向链表实现的,保存了头尾节点,所以在列表头尾两边插取元素都是非常快的。
……redis 是单线程运行,如果 key 过大,会对整个 redis 相应时间对造成影响。
1、通过 rdb 文件分析,在 github 上有一个分析 rdb 文件的开源软件 rdr,Go 语言写的,通过这个离线分析可以减少对生产环境造成影响。(推荐)
2、redis-cli 原生自带的–bigkeys 的查找大 key 的分析,可以找到某个实例 5 种数据类型(String、hash、list、set、zset)的最大 key。
3、redis-cli 命令有一个 debug object 的命令,可以获取 key 在内存中序列化后的大小,可以通过 scan 方法查找 key,然后 debug object 分析 key。不推荐这个,如果 key 很多,要统计很久。
……pika 是 360 DBA 和基础架构组联合开发的类 redis 存储系统, 完全支持 Redis 协议,用户不需要修改任何代码, 就可以将服务迁移至 pika;有维护 redis 经验的 DBA 维护 pika 不需要多少学习成本。
主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。
……