做如下优化起因:处理redis启动时报错。
vi /etc/sysctl.conf在文件末尾加上,而后保存net.core.somaxconn = 2048vm.overcommit_memory = 1运行命令使修改生效/sbin/sysctl -pvi /etc/rc.local在文件末尾加上,而后保存echo never > /sys/kernel/mm/transparent_hugepage/enabled重启服务器
cd到redis安装包所在文件夹解压tar -zxvf redis-3.2.9.tar.gz安装cd redis-3.2.9make MALLOC=libc 处理报错问题安装,可通过PREFIX指定安装目录make install PREFIX=/usr/local/redis将源码中的配置文件拷贝到安装目录bin文件夹cp /usr/local/src/redis-3.2.9/redis.conf /usr/local/redis/bin/cp /usr/local/src/redis-3.2.9/sentinel.conf /usr/local/redis/bin/运行cd /usr/local/redis/bin./redis-server redis.conf中止cd /usr/local/redis/bin./redis-cli shutdown
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directoryzmalloc.h:55:2: error: #error "Newer version of jemalloc required"make[1]: *** [adlist.o] Error 1make[1]: Leaving directory `/data0/src/redis-2.6.2/src'make: *** [all] Error 2处理办法是:make MALLOC=libc
在缓存模式下Redis不需要存储数据(数据能从数据库中得到)#参数,能否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码 和bind,能开启。否则最好关闭,生产服务器设置为yes。 protected-mode yes#redis监听的端口号,根据需要设置port 6379#指定 redis 只接收来自于本机的该IP对应网卡的请求,假如不进行设置,那么将解决所有请求 bind 127.0.0.1 #此处需要注意两个ip地址只可以用一个生效,否则会被覆盖掉。bind 192.168.0.203#requirepass配置能让使用户用AUTH命令来认证密码,才可以用其余命令。这让redis能用在不受信任的网络中。为了保持向后的兼容性,能注释该命令,由于大部分使用户也不需要认证。用requirepass的时候需要注意,由于redis太快了,每秒能认证15w次密码,简单的密码很容易被攻破,所以最好用一个更复杂的密码。 requirepass redis# 快照配置 # 注释掉“save”这一行配置项即可以让保存数据库功可以失效 # 设置redis进行数据库镜像的频率。 # 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化) # save 900 1# 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化) # save 300 10# 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化) save 300 10 save 60 10000# save 60 10000# 缓存模式下可通过以下设置关闭RDBsave ""#redis配置的最大内存容量。当内存满了,需要配合maxmemory-policy策略进行解决。注意slave的输出缓冲区是不计算在maxmemory内的。所以为了防止主机内存用完,建议设置的maxmemory需要小于服务器剩余内存。 # 当前配置为最大内存4G,根据服务器实际需要修改maxmemory 4294967296#默认redis用的是rdb方式持久化,这种方式在许多应使用中已经足够使用了。但是redis假如中途宕机,会导致可可以有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,能提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。 # 缓存模式下可通过以下设置关闭appendonlyappendonly no把daemonize设置为yes 能后端启动