linux应用一Redis安装和配置
2018-07-02 本文已影响40人
十二楼中月
- 安装环境
• 操作系统:Centos6.4 x64
• 安装软件:redis-3.2.9.tar.gz
1. 环境优化
做如下优化原因:解决redis启动时报错。
vi /etc/sysctl.conf
在文件末尾加上,然后保存
net.core.somaxconn = 2048
vm.overcommit_memory = 1
运行命令使修改生效
/sbin/sysctl -p
vi /etc/rc.local
在文件末尾加上,然后保存
echo never > /sys/kernel/mm/transparent_hugepage/enabled
重启服务器
- 修改somaxconn
该内核参数默认值一般是128(定义了系统中每一个端口最大的监听队列的长度),对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大 - overcommit_memory参数说明:
设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 - transparent_hugepage
透明大页(THP)管理和标准/传统大页(HP)管理都是操作系统为了减少页表转换消耗的资源而发布的新特性,虽然ORACLE建议利用大页机制来提高数据库的性能,但是ORACLE却同时建议关闭透明大页管理,在redis中建议关闭。
2. 安装步骤
cd到redis安装包所在文件夹
解压
tar -zxvf redis-3.2.9.tar.gz
安装
cd redis-3.2.9
make 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 directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
解决办法是:
make MALLOC=libc
3. 纯缓存模式下配置说明(其他模式配置,后续学习后再更新)
在缓存模式下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
# 缓存模式下可通过以下设置关闭RDB
save ""
#redis配置的最大内存容量。当内存满了,需要配合maxmemory-policy策略进行处理。注意slave的输出缓冲区是不计算在maxmemory内的。所以为了防止主机内存使用完,建议设置的maxmemory需要小于服务器剩余内存。
# 当前配置为最大内存4G,根据服务器实际需要修改
maxmemory 4294967296
#默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。
# 缓存模式下可通过以下设置关闭appendonly
appendonly no
把daemonize设置为yes 可以后台启动