Redis 单节点安装

1.Redis官网

https://redis.io/download  选择5.0.10版本

2.规划目录

mkdir -p /data/soft                      #下载⽬录
mkdir -p /opt/redis_6379/{conf,logs,pid} #安装⽬录,⽇志⽬录,pid⽬录,配置⽬录
mkdir -p /data/redis_6379/               #数据⽬录

3.安装命令 (编译安装)

复制代码
编译安装解释
./config             指定编译参数
make                按照要求编译生成可执行程序
make install      把生成的可执行文件复制到/usr/local/bin/1.直接下载
cd /data/soft/
wget http://download.redis.io/releases/redis-5.0.7.tar.gz

2.上传rz 
cd /data/soft/
redis-5.0.7.tar.gz

3.解压到/opt/ 目录下
tar zxf redis-5.0.7.tar.gz -C /opt/

4.做个软链接
ln -s /opt/redis-5.0.7 /opt/redis

5.安装依赖
yum install gcc make -y

6.进入redis 目录,编译
cd /opt/redis
make && make install    如果安装make 时报错,执行 make MALLOC=libc
复制代码

4.编写配置文档

复制代码
1.创建数据和日志目录
mkdir -p /opt/redis_6379/{conf,logs,pid}
mkdir -p /data/redis_6379

2.编写配置文档
cat >/opt/redis_6379/conf/redis_6379.conf<<EOF
daemonize yes
bind 127.0.0.1 10.0.0.51
port 6379
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log
EOF
复制代码

5.启动redis

redis-server /opt/redis_6379/conf/redis_6379.conf

为什么不用将redis写入环境变量中,因为PATH 本身就是/usr/local/bin 下,因为make install 将生成的可执行文件复制到/usr/local/bin/下
[root@db01 /opt/redis_6379/logs23:15:19]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/mysql/bin:/root/bin

6.检查是否启动

ps -ef|grep redis
netstat -lntup|grep 6379

7.连接redis

[root@db01 ~]# redis-cli      
127.0.0.1:6379> set k1 v1       #设置K1 values 为v1
OK
127.0.0.1:6379> get k1          #查k1 的values 
"v1"
可以显示以上说明redis 连接上,而且正常

8.关闭命令

复制代码
方法一: 在redis 中输入shutdown 再输入exit 或者ctrl +c
       [root@db01 ~]# redis-cli
       127.0.0.1:6379> SHUTDOWN
       
方法二: 在虚拟机机输入 redis-cli shutdown
       [root@db01 ~]# redis-cli shutdown
       
方法三: kill redis
       pkill redis
复制代码

9 .system启动配置

复制代码
1.先关闭redis
  redis-cli shutdown
  
2.创建redis虚拟用户和授权
  groupadd redis -g 2000
  useradd redis -u 2000 -g 2000 -M -s /bin/nologin
  chown -R redis.redis /opt/redis*
  chown -R redis.redis /data/redis*
  
 3. 编写配置档
 cat >/usr/lib/systemd/system/redis.service<<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/redis-server /opt/redis_6379/conf/redis_6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF

4.执行启动命令
systemctl daemon-reload   每次redis 断开后需要重行执行命令,systemctl start redis 才可以执行,要不然报错
systemctl start redis
复制代码

10.优化警告

复制代码
用systemctl start redis 后redis 日志会错以下四个警告错误

1. maximum open files过低
17068:M 23 Jun 2020 10:23:55.707 # You requested maxclients of 10000
requiring at least 10032 max file descriptors.
17068:M 23 Jun 2020 10:23:55.707 # Server can't set maximum open files
to 10032 because of OS error: Operation not permitted.
17068:M 23 Jun 2020 10:23:55.707 # Current maximum open files is 4096.
maxclients has been reduced to 4064 to compensate for low ulimit. If you
need higher maxclients increase 'ulimit -n'

解决方法: systemd启动⽂件添加参数
vim /usr/lib/systemd/system/redis.service
[Service]
..............
LimitNOFILE=65536

[root@db01 /data/soft22:55:03]# cat /usr/lib/systemd/system/redis.service
[Service]
ExecStart=/usr/local/bin/redis-server /opt/redis_6379/conf/redis_6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=65536                              *****

2.WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

解决方法: 执行以下命令
echo "511" > /proc/sys/net/core/somaxconn 

3.overcommit_memory设置 虚拟内存相关
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.

 解决方法:
 sysctl vm.overcommit_memory=1
 
 4.关闭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
 
 永久解决: 写入开机启动文件中
 vim /etc/rc.d/rc.local
 echo never > /sys/kernel/mm/transparent_hugepage/enabled
 
 赋予开机启动文件运行权限
 chmod +x /etc/rc.d/rc.local
复制代码

11.配置文件解释

复制代码
1.daemonize yes
# daemonize no 默认情况下, redis 不是在后台运⾏的,如果需要在后台运⾏,把该项的值更改为 yes

2.bind 127.0.0.1 10.0.0.51
# 指定 redis 只接收来⾃于该 IP 地址的请求,如果不进⾏设置,那么将处理所有请求

3.port 6379
# 指定redis运⾏的端⼝,默认是 6379

4.pidfile /opt/redis_6379/pid/redis_6379.pid
# 当redis在后台运⾏的时候, Redis默认会把pid⽂件放在 /var/run/redis.pid ,你可以配置到其他地址。
# 当运⾏多个redis服务时,需要指定不同的 pid ⽂件和端⼝

5.logfile /opt/redis_6379/logs/redis_6379.log
# 配置 log ⽂件地址
复制代码

12.  redis    yum 直接安装相关配置和启动

复制代码
#1.安装
   yum install -y redis   
#2.查看默认配置档和相关文件
  rpm -ql redis 
  
 [root@shell /var/log/redis22:23:13]# rpm -ql redis
/etc/logrotate.d/redis
/etc/redis-sentinel.conf
/etc/redis.conf
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli
/usr/bin/redis-sentinel
/usr/bin/redis-server
/usr/lib/systemd/system/redis-sentinel.service
/usr/lib/systemd/system/redis.service
/usr/libexec/redis-shutdown
/usr/share/doc/redis-3.2.12
/usr/share/doc/redis-3.2.12/00-RELEASENOTES
/usr/share/doc/redis-3.2.12/BUGS
/usr/share/doc/redis-3.2.12/CONTRIBUTING
/usr/share/doc/redis-3.2.12/MANIFESTO
/usr/share/doc/redis-3.2.12/README.md
/usr/share/licenses/redis-3.2.12
/usr/share/licenses/redis-3.2.12/COPYING
/usr/share/man/man1/redis-benchmark.1.gz
/usr/share/man/man1/redis-check-aof.1.gz
/usr/share/man/man1/redis-check-rdb.1.gz
/usr/share/man/man1/redis-cli.1.gz
/usr/share/man/man1/redis-sentinel.1.gz
/usr/share/man/man1/redis-server.1.gz
/usr/share/man/man5/redis-sentinel.conf.5.gz
/usr/share/man/man5/redis.conf.5.gz
/var/lib/redis
/var/log/redis
/var/run/redis
#3.启动redis
 /usr/bin/redis-server  /etc/redis.conf     #这样启动会在前台夯住,可以放后台启动
 nohup /usr/bin/redis-server  /etc/redis.conf &
#4.查看是否启动OK
[root@shell /var/log/redis22:23:26]# ps -ef |grep redis
root       7718   7624  0 22:16 pts/1    00:00:01 /usr/bin/redis-server 127.0.0.1:6379
root       7741   7443  0 22:25 pts/0    00:00:00 grep --color=auto redis
#5.连接redis
 redis-cli 或redis-cli -h ip #如果是多端口需要写明ip 端口,如果是单节点一个端口就是用这个命令redis-cli
#6.查看redis 版本信息
 连接上redis后输入info 即可看到版本信息
 [root@shell /var/log/redis22:19:02]# redis-cli
127.0.0.1:6379> info
# Server
redis_version:3.2.12
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:7897e7d0e13773f
redis_mode:standalone
os:Linux 3.10.0-957.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.5
process_id:7718
run_id:c4c51ede67e3e8baf06fc60bbbabe34a9f5d9611
tcp_port:6379
uptime_in_seconds:183
uptime_in_days:0
hz:10
lru_clock:6571998
executable:/usr/bin/redis-server
config_file:/etc/redis.conf
复制代码

 

 

posted @   Linux运维-Friend  阅读(450)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示