Linux 安装redis (第一版,比较混乱,请看新版本)

这个是第一版,写的比较混乱,请看新版本

一、下载redis

https://redis.io/download

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


 

猜你喜欢

转载自blog.csdn.net/zhuiyue82/article/details/102957454
今日推荐