阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Centos7 Install and Configuration Redis

90次阅读
没有评论

共计 3398 个字符,预计需要花费 9 分钟才能阅读完成。

导读 最近做 Nginx 负载均衡配置,由于我们是交互性网站,必须用到 session,尝试了多种方案,最后选择了 Redis 做为数据库缓存服务器。

Redis 官方简介

Redis 是一个开源(BSD 许可),内存数据结构存储,用作数据库,缓存和消息代理。它支持的数据结构,例如字符串,散列,列表,集合,具有范围查询的排序集,位图,超文本和具有半径查询的地理空间索引。Redis 内置复制,Lua 脚本,LRU 驱逐,事务和不同级别的磁盘持久性,并通过 Redis Sentinel 提供高可用性,并通过 Redis Cluster 进行自动分区。

进入正题,无论是物理或虚拟化服务器,Redis 安装方法都没有区别,接下来我就开始安装操作。

实验 OS:CentOS Linux release 7.3.1611 (Core) x64

Centos7 Install and Configuration Redis

1. 先决扩展条件

 安装扩展包以及依赖包
# yum install epel-release -y 
# yum install gcc gcc-c++ jemalloc-devel

2.Redis 安装

下载解压 将其移动到 /usr/local 目录,创建目录以及用户和组,并给予目录权限,最后创建软连接。

# wget http://download.redis.io/releases/redis-4.0.1.tar.gz
# tar zxvf redis-4.0.1.tar.gz
# mv redis-4.0.1 /usr/local/
# cd /usr/local/
# mkdir -p /usr/local/redis-4.0.1/logs
# mkdir -p /usr/local/redis-4.0.1/rdb
# groupadd redis
# useradd -g redis -s /sbin/nologin redis
# chown -R redis:redis /usr/local/redis-4.0.1/logs
# chown -R redis:redis /usr/local/redis-4.0.1/rdb
# chown redis:redis /usr/local/redis-4.0.1/redis.conf
# make && make install
# ln -s redis-4.0.1 redis

3. 配置文件

生产环境中以下信息是必须修改的,所以可以根据自己的需求进行修改 /usr/local/redis-4.0.1/redis.conf 此文件

port 6379 #监听端口, 默认是 6379
daemonize yes #如果需要在后台运行,把该项改为 yes
requirepass foobared #去掉前边 #注释, 修改 foobared 为你想配置的任意密码
bind 10.10.204.65 #默认 bind 的填写 127.0.0.1 这样配置是只允许本地访问, 想远程访问就改本机网卡配置的 ip 地址。多个 IP 请使用空格隔开
pidfile /usr/local/redis/logs/redis.pid
logfile "/usr/local/redis/logs/redis.log" #设置日志文件路径
dir /usr/local/redis-4.0.1/rdb #持久化文件存储路径
supervised systemd #默认为 no, 由于我们正在运行一个使用 systemd init 系统的操作系统, 所以我们可以将其更改为 systemd

除了上述几个设置外,还有其他的等一些参数,有需要可以按照配置文件的说明修改。

4. 测试 redis 启动

# /usr/local/redis/src/redis-server /usr/local/redis/redis.conf
 ...
 WARNING The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
 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.
 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.

可以看到存在 3 条启动警告信息:

第一个错误和第二个错误可以同时解决,第一个错误大概是说 somaxconn 的值 128 设置过小,此值受限于系统的 somaxconn 与 tcp_max_syn_backlog 这两个值,所以应该把这两个内核参数值调大,第二个错误是过量使用内存设置为 0!在低内存环境下,后台保存可能失败。请在 /etc/sysctl.conf 添加一项‘vm.overcommit_memory = 1′,然后重启(或者运行命令’sysctl vm.overcommit_memory=1’)使其生效。

# vim /etc/sysctl.conf
 net.core.somaxconn = 20480
 #最大队列长度,应付突发的大并发连接请求,默认为 128
 net.ipv4.tcp_max_syn_backlog = 20480
 #半连接队列长度,此值受限于内存大小,默认为 1024
 vm.overcommit_memory = 1
 #过量使用内存设置为 0!# sysctl -p
第三个警告错误是需要关闭 Linux (THP) 透明内存
 # vim /etc/rc.local
 echo never > /sys/kernel/mm/transparent_hugepage/enabled #在开机脚本里追加此命令
至此 3 个错误已经解决,再次启动的时候就不会报警告信息。

5. 创建一个 Redis 系统单元文件

# vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/bin/redis-cli -p 6379 shutdown
Restart=always

[Install]
WantedBy=multi-user.target

6. 启动 redis 并加入开机启动

# systemctl daemon-reload 
# systemctl start redis.service 
# systemctl enable redis.service

7. 查看是否启动

# ps -A | grep redis
 6167 ? 00:00:00 redis-server

8. 加入防火墙

# firewall-cmd --zone=public --add-port=6379/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --zone=public --list-ports

9. 测试连接成功

# redis-cli
127.0.0.1:6379>

到目前为止 redis 已经完成安装, 其实生产环境的安装也是如此,只不过需求不同,redis.conf 中的修改内容不同。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-08-01发表,共计3398字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中