1.官网传送门:https://redis.io/
或者
wget http://download.redis.io/releases/redis-6.0.5.tar.gz2.提取和编译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 test3.启动redis
./src/redis-serverredis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。按 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 195655.设置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 stop6.允许远程链接
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
使用客户端工具连接
连接成功!!!