CentOS 7 安装Redis4.0
Posted 大魔王
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 安装Redis4.0相关的知识,希望对你有一定的参考价值。
redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用
redis存储数据的方法是以key-value的形式
value类型支持字符串,列表,哈希等多种类型
环境 : CnetOS7 192.168.94.11
关闭SElinux和防火墙
安装Redis
[[email protected] ~]# yum -y install wget gcc gcc-c++ make tar openssl openssl-devel cmake [[email protected] ~]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz [[email protected] ~]# tar xf redis-4.0.1.tar.gz -C /usr/local/src/ [[email protected] ~]# cd /usr/local/src/redis-4.0.1/ [[email protected] redis-4.0.1]# make & make test [[email protected] redis-4.0.1]# make PREFIX=/usr/local/redis install [[email protected] redis]# cd /usr/local/redis/ [[email protected] redis]# ls bin [[email protected] redis]# mkdir /usr/local/redis/conf [[email protected] redis]# cp /usr/local/src/redis-4.0.1/redis.conf /usr/local/redis/conf/ [[email protected] redis]# cp /usr/local/src/redis-4.0.1/sentinel.conf /usr/local/redis/conf/ [[email protected] redis]# ln -s /usr/local/redis/bin/* /usr/local/bin/ [[email protected] redis]# redis-server --version Redis server v=4.0.1 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=d789e4152c8567db
简化redis配置文件,创建redis数据目录
[[email protected] redis]# grep -Ev ‘^#|^$‘ conf/redis.conf.bak > conf/redis.conf [[email protected] redis]# mkdir /data/redis -p
修改redis配置文件
修改以下参数 [[email protected] redis]# vim conf/redis.conf bind 0.0.0.0 #监听地址 port 6379 #监听端口 tcp-backlog 1024 #tcp连接数 daemonize yes #是否后台启动 pidfile /data/redis/redis.pid #pid存放目录 logfile "/data/redis/redis.log" #日志存放目录 dir /data/redis/ #工作目录
redis服务启动和关闭
启动redis服务 [[email protected] redis]# redis-server /usr/local/redis/conf/redis.conf [[email protected] redis]# netstat -antup|grep redis tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 54109/redis-server 连接redis服务 [[email protected] redis]# redis-cli -h 127.0.0.1 127.0.0.1:6379> quit 关闭redis服务 [[email protected] redis]# redis-cli -h 127.0.0.1 shutdown [[email protected] redis]# netstat -antup|grep redis
redis系统参数优化
启动redis之后产看redis日志 [[email protected] redis]# cat /data/redis/redis.log 54108:C 08 Oct 15:45:46.095 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 54108:C 08 Oct 15:45:46.095 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=54108, just started 54108:C 08 Oct 15:45:46.095 # Configuration loaded 54109:M 08 Oct 15:45:46.097 * Increased maximum number of open files to 10032 (it was originally set to 1024). # 系统文件描述符设置为1024,太小,最好设置为10032 _._ _.-``__ ‘‘-._ _.-`` `. `_. ‘‘-._ Redis 4.0.1 (00000000/0) 64 bit .-`` .-```. ```/ _.,_ ‘‘-._ ( ‘ , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|‘` _.-‘| Port: 6379 | `-._ `._ / _.-‘ | PID: 54109 `-._ `-._ `-./ _.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | http://redis.io `-._ `-._`-.__.-‘_.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | `-._ `-._`-.__.-‘_.-‘ _.-‘ `-._ `-.__.-‘ _.-‘ `-._ _.-‘ `-.__.-‘ 54109:M 08 Oct 15:45:46.099 # WARNING: The TCP backlog setting of 1024 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
# TCP的值为128太小了
54109:M 08 Oct 15:45:46.100 # Server initialized 54109:M 08 Oct 15:45:46.100 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1‘ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1‘ for this to take effect. # overcommit_memory=0为不允许超额抢占内存,但是,rdb保存可能会失败。建议将vm.overcommit_memory = 1进行修改
54109:M 08 Oct 15:45:46.100 # 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. # 你的内核中启用了巨大内存页的支持,这将与redis的延迟内存使用冲突
54109:M 08 Oct 15:45:46.100 * Ready to accept connections
下面来逐个调整
调整系统文件描述符 [[email protected] redis]# echo "* - nofile 10240" >> /etc/security/limits.conf [[email protected] redis]# ulimit -n 1024 [[email protected] redis]# su -l # 重新登录 , 使配置生效 上一次登录:一 10月 8 15:15:35 CST 2018从 192.168.94.1pts/1 上 [[email protected] ~]# ulimit -n 10240 调整TCP连接数 [[email protected] ~]# sysctl -a | grep soma net.core.somaxconn = 128 sysctl: reading key "net.ipv6.conf.all.stable_secret" sysctl: reading key "net.ipv6.conf.default.stable_secret" sysctl: reading key "net.ipv6.conf.ens33.stable_secret" sysctl: reading key "net.ipv6.conf.lo.stable_secret" [[email protected] ~]# echo "net.core.somaxconn = 10240" >> /etc/sysctl.conf [[email protected] ~]# sysctl -p net.core.somaxconn = 10240 调整系统内存分配策略 [[email protected] ~]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf [[email protected] ~]# sysctl -p net.core.somaxconn = 10240 vm.overcommit_memory = 1 [[email protected] ~]# sysctl -a | grep commit sysctl: reading key "net.ipv6.conf.all.stable_secret" sysctl: reading key "net.ipv6.conf.default.stable_secret" sysctl: reading key "net.ipv6.conf.ens33.stable_secret" sysctl: reading key "net.ipv6.conf.lo.stable_secret" vm.nr_overcommit_hugepages = 0 vm.overcommit_kbytes = 0 vm.overcommit_memory = 1 # 修改成功 vm.overcommit_ratio = 50 关闭系统内核的巨大内存页支持 [[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled [[email protected] ~]# cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] [[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag [[email protected] ~]# cat /sys/kernel/mm/transparent_hugepage/defrag always madvise [never] # 添加到rc.local [[email protected] ~]# echo -e ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag‘>> /etc/rc.local [[email protected] ~]# tail -2 /etc/rc.local echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
重启redis-server
[[email protected] ~]# redis-cli -h 127.0.0.1 shutdown # 关闭redis服务 [[email protected] ~]# > /data/redis/redis.log # 清空日志 [[email protected] ~]# redis-server /usr/local/redis/conf/redis.conf # 启动redis服务 [[email protected] ~]# cat /data/redis/redis.log # 查看日志 54720:C 08 Oct 16:08:17.474 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 54720:C 08 Oct 16:08:17.474 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=54720, just started 54720:C 08 Oct 16:08:17.474 # Configuration loaded _._ _.-``__ ‘‘-._ _.-`` `. `_. ‘‘-._ Redis 4.0.1 (00000000/0) 64 bit .-`` .-```. ```/ _.,_ ‘‘-._ ( ‘ , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|‘` _.-‘| Port: 6379 | `-._ `._ / _.-‘ | PID: 54721 `-._ `-._ `-./ _.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | http://redis.io `-._ `-._`-.__.-‘_.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | `-._ `-._`-.__.-‘_.-‘ _.-‘ `-._ `-.__.-‘ _.-‘ `-._ _.-‘ `-.__.-‘ 54721:M 08 Oct 16:08:17.478 # Server initialized 54721:M 08 Oct 16:08:17.479 * DB loaded from disk: 0.000 seconds 54721:M 08 Oct 16:08:17.479 * Ready to accept connections
以上是关于CentOS 7 安装Redis4.0的主要内容,如果未能解决你的问题,请参考以下文章