解决:
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf sysctl vm.overcommit_memory=1 THP问题 WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled解决:
echo never > /sys/kernel/mm/transparent_hugepage/enabled 校验为了更好的校验,这里给大家提供一个工具-Redis-desktop-manager
redis-desktop-manager:提取码:jdc2
作为正版软件,会有14天的试用期。当然,如果几乎不用,也可以使用盗版。但是还是推荐正版的说(正版功能强大),貌似还有github提交,就可以免费的说法(起码以前是存在的,现在就不清楚了)。
如果看到以下画面,就表示OK了:
另外,可以通过以下命令校验:
/developer/redis-5.0.3/src/redis-cli -p 6379 info一般看到如下画面即可:
Redis主从复制Redis的主从复制还是较为简单的。
主要分为两个方面,一方面是多个独立的Redis实例,另一方面是Redis的slaveof配置(共有三种方式)。
Redis文件发送通过以下命令,进行Redis的文件发送:
scp -r /developer/ root@172.26.40.224:/上述命令,是将当前服务器的/developer目录整个(-r 表示递归)发送给172.26.40.224服务器。
slaveof配置这里的Redis主服务器的地址为172.26.40.225,其端口为6379
配置文件设置在配置文件中添加以下语句:
slaveof 172.26.40.225 6379正常启动,控制台并不会有专门的提示,正常如下:
redis-server启动时配置参数这种情况下,无法使用配置文件。
起码没法直接使用,可能我的使用存在问题(平时不用这个)。囧
正常使用,可以看到如下画面:
redis-cli运行时设置而通过redis-cli程序,在程序运行时,进行集群调整。
脱离集群扩展一下,有的时候,我们需要将实例,移出当前集群。
既然是运行时,那当然是通过redis-cli程序。
校验可以通过以下命令:
/developer/redis-5.0.3/src/redis-cli -p 6379 info replication分别查看Redis实例信息。
如果看到以下页面,表示Redis主从集群正常启动:
Redis主实例: Redis从实例: 读写分离应用这里简单谈一下,程序如何使用读写分离,如Jedis如何实现读写分离。
目前看到的主要有两种:
建立多个Jedis对象,并通过Jedsi.slaveof来设定主从
在配置文件中建立多个redis数据源,并通过动态转换类,实现在不同需求时,注入不同的redis连接
当然上述编码并不友好,一方面这些硬编码在应用程序中(这个可以通过配置来解决),另一方面存在一致性与扩展性问题(程序中的设置,与Redis的集群本身耦合较高。至于这属于哪种级别的耦合,我忘了。囧)。
当然,我们也可以只获取Redis主实例的连接信息,再通过拼接”info replication“命令等,来获取Redis从实例的连接信息。