liunx安装redis6.0.5
1.官网传送门:https://redis.io/
或者
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
2.提取和编译Redis
tar xzf redis-6.0.5.tar.gz
cd redis-6.0.5
make
报错:
server.c:2868:11: error: ‘struct redisServer’ has no member named ‘cron_malloc_stats’
server.cron_malloc_stats.allocator_resident = 0;
^
server.c:2869:11: error: ‘struct redisServer’ has no member named ‘lastbgsave_status’
server.lastbgsave_status = C_OK;
^
server.c:2870:11: error: ‘struct redisServer’ has no member named ‘aof_last_write_status’
server.aof_last_write_status = C_OK;
^
server.c:2871:11: error: ‘struct redisServer’ has no member named ‘aof_last_write_errno’
server.aof_last_write_errno = 0;
^
server.c:2872:11: error: ‘struct redisServer’ has no member named ‘repl_good_slaves_count’
server.repl_good_slaves_count = 0;
^
server.c:2884:27: error: ‘struct redisServer’ has no member named ‘ipfd_count’
for (j = 0; j < server.ipfd_count; j++) {
^
server.c:2885:48: error: ‘struct redisServer’ has no member named ‘ipfd’
if (aeCreateFileEvent(server.el, server.ipfd[j], AE_READABLE,
^
server.c:2892:27: error: ‘struct redisServer’ has no member named ‘tlsfd_count’
for (j = 0; j < server.tlsfd_count; j++) {
^
server.c:2893:48: error: ‘struct redisServer’ has no member named ‘tlsfd’
if (aeCreateFileEvent(server.el, server.tlsfd[j], AE_READABLE,
^
错误原因:gcc版本问题,新版本的。redis6.0以上
//查看gcc版本
gcc -v
升级版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
//注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
//如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
执行命令make
//下方可忽略,以下持续时间比较长,大概五六分钟左右
//可选测试
//使用make test进行测试
yum install tcl
make test
3.启动redis
./src/redis-server
redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。按 ctrl + c可以关闭窗口。
4.以后台方式启动redis
①:使用命令:vim redis.conf 找到如下一行修改
//no 改成 yes
daemonize yes
指定redis.conf启动方式
./src/redis-server redis.conf
②:关闭redis进程
ps -aux | grep redis
root 19565 0.1 0.0 162260 2496 ? Ssl 16:49 0:00 ./src/redis-server 127.0.0.1:6379
root 19786 0.0 0.0 112688 672 pts/1 R+ 16:51 0:00 grep --color=auto redis
③:使用kill命令杀死进程
kill 19565
5.设置redis开机自启动
//进入etc文件夹
cd /etc
//创建redis目录
mkdir redis
//将/usr/local/redis-6.0.5/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
cp /usr/local/redis/redis-6.0.5/redis.conf /etc/redis/6379.conf
//将redis的启动脚本复制一份放到/etc/init.d目录下
cp /usr/local/redis/redis-6.0.5/utils/redis_init_script /etc/init.d/redisd
设置开机自启动
//先切换到/etc/init.d目录下
cd /etc/init.d
//执行自启动命令
chkconfig redisd on
启动redis
service redisd start
如有报错1:
/var/run/redis_6379.pid exists, process is already running or crashed
解决方法:rm -rf /var/run/redis_6379.pid
重新执行 service redisd start 即可
如有报错2:
/etc/init.d/redisd: line 28: /usr/local/bin/redis-server: No such file or directory
解决方法:
vim /etc/init.d/redisd
把
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
改为自己安装路径
EXEC=/usr/local/redis/redis-6.0.5/src/redis-server
CLIEXEC=/usr/local/redis/redis-6.0.5/src/redis-cli
重新执行 service redisd start 即可
关闭redis
service redisd stop
6.允许远程链接
vim redis.conf
①:把bind 127.0.0.1使用#注释掉,默认只允许本机链接
#bind 127.0.0.1
②:把protected-mode yes 改为no,3.2之后加入的新特性,目的是禁止公网访问redis cache,增强redis的安全性
protected-mode no
③:将 requirepass foobared注释去掉,foobared为密码
requirepass 你的密码
//启动redis
./src/redis-server redis.conf
③:将 requirepass foobared注释去掉,foobared为密码
requirepass 你的密码
//启动redis
./src/redis-server redis.conf
使用客户端工具连接
连接成功!!!