这个是第一版,写的比较混乱,请看新版本
一、下载redis
redis-6.0.5.tar.gz
二、上传到服务器中/java
三、解压 tar xzvf redis-6.0.5.tar.gz
输入 cd redis-6.0.5
输入 make
如果此处报错 如 server.c:xxxx:xx: error: ‘xxxxxxxx’ has no member named ‘xxxxx’。
[root@master redis-6.0.1]# make
……
server.c:5101:19: error: ‘struct redisServer’ has no member named ‘sofd’
if (server.sofd > 0)
^
server.c:5102:94: error: ‘struct redisServer’ has no member named ‘unixsocket’
serverLog(LL_NOTICE,"The server is now ready to accept connections at %s", server.unixsocket);
^
server.c:5103:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
if (server.supervised_mode == SUPERVISED_SYSTEMD) {
^
server.c:5104:24: error: ‘struct redisServer’ has no member named ‘masterhost’
if (!server.masterhost) {
^
server.c:5117:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
if (server.maxmemory > 0 && server.maxmemory < 1024*1024) {
^
server.c:5117:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
……
首先我们查看一下gcc的版本。
#查看gcc的版本是否在 5.3以上,centos7默认是4.8.5.我这里的就是4.8.5
gcc -v
解决方案:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
#长期生效
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
重新打开xshell窗口,查看gcc -v 应该就是新版本了
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)
然后再进行make即可
#cd src
#make install PREFIX=/web/redis
cd ../ 回到redis根目录下/java/redis-6.0.5
四、修改redis.conf文件
(1)、#bind 127.0.0.1 将这里前面加上#
(2)、daemonize yes (这里讲原来的no改为yes,目的是为了设置后台运行)
(3)、protected-mode no (这里讲原来的yes改为no,目的是为了解决安全模式引起的报错)
(4)、# requirepass foobared 去掉# 新增密码如123456
ps axu|grep redis-server
五、启动redis
src/redis-server redis.conf
使用redis
src/redis-cli -h 255.255.255.255 -p 6379 -a 123456
会有个警告信息,可以使用2>/dev/null去掉
src/redis-cli -h 255.255.255.255 -p 6379 -a 123456 2>/dev/null
此时就可以新增相应的缓存内容了
退出 quit
六、停止redis
src/redis-cli shutdown
如果加了密码则需要用下面的方式停止
src/redis-cli -h 255.255.255.255 -p 6379 -a 123456 shutdown
七、开机自启动
进入/etc
cd /etc
修改 rc.local
# vi rc.local
在里面添加内容:/web/redis-5.0.5/src/redis-server /web/redis-5.0.5/redis.conf
PS : 将rc.local修改为可执行,(这一步关键)
执行命令 # chmod -R 777 /etc/rc.d/rc.local
安全性
使用root去运行网络服务比较有风险,redis crackit漏洞就是利用root用户权限替换或者增加authorized_keys,,来获取root登录权限,
方法:
使用root切换redis用户 启动服务
#新增用户组
groupadd admin
#新建用户hm并加入admin组中,并禁止登录
useradd -M hm -g admin -s /sbin/nologin
在/home 下创建目录hm
在/home/hm 下创建目录 redis 、 run
# mkdir -p /home/hm/run #创建run目录
# mkdir -p /home/hm/redis #创建redis目录
# chown -R hm:admin /home/hm #将用户hm目录下的所有文件所属者与所属组修改为hm:admin
将redis的配置文件redis.conf复制一份到hm用户的redis目录下
然后编辑redis.conf
$ vim /home/hm/redis/redis.conf #编辑redis配置文件变更以下内容
将`pidfile /var/run/redis.pid`修改为`pidfile /home/hm/run/redis.pid`
将`dir ./`修改为`dir /home/hm/redis`
修改redis目录权限及用普通用户启动redis服务
chown -R hm:admin /java/redis-6.0.6
[root@iZhvmhzrrp5eocZ ~]# su hm
bash-4.2$ /java/redis-6.0.6/src/redis-server /home/hm/redis/redis.conf
bash-4.2$ exit
exit
关闭redis
[root@iZhvmhzrrp5eocZ bin]# su hm
bash-4.2$ /java/redis-6.0.6/src/redis-cli -h 127.0.0.1 -p 6379 -u 123456 shutdown
Invalid URI scheme
bash-4.2$ exit
exit
使用此功能时,可能会报logs日志权限错误,请给日志文件赋权,注意自己的日志文件的路径。
chmod -R 777 /var/log/redis/redis.log