前言
公司新上项目,需要安装一个新的redis,故整理笔记记录安装过程,方便以后学习。
redis下载地址:http://download.redis.io/releases/
一、安装
1、选择安装路径:/data/dwca
[root@xxxxxx data]# cd /data/
[root@xxxxxx data]# ll
total 2172
drwxr-x--- 2 root root 4096 Oct 20 15:15 dwca
drwxr-x--- 2 root root 200704 Jun 22 2016 flow
drwxr-x--- 2 root root 4096 Mar 26 2016 flux
drwx------. 2 root root 16384 Dec 30 2014 lost+found
drwxr-xr-- 6 xxxxxx xxxxxx 4096 Sep 21 14:12 opt
-rwxrwxrwx 1 test test 1975750 Oct 20 14:49 redis-5.0.5.tar.gz
-rw-r----- 1 root root 0 Jun 21 2016 scpflow.log
-rw-r----- 1 root root 132 Jun 21 2016 scpflow.sh
drwxrwxrwx 4 root root 4096 Apr 11 2015 soft
-rw-r----- 1 root root 4 Jun 21 2016 tsetes.txt
2、将安装目录赋权给指定用户
[root@xxxxxx data]# chown -R test:test dwca/
3、安装gcc环境
redis是由C语言编写的,它的运行需要C环境,所以编译前需安装 gcc
[test@xxxxxx redis-5.0.5]$ sudo yum install gcc-c++
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, product-id, refresh-packagekit, security, subscription-manager, tmprepo,
: verify, versionlock
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Loading support for Red Hat kernel ABI
local | 3.9 kB 00:00
Setting up Install Process
Package gcc-c++-4.4.7-4.el6.x86_64 already installed and latest version
Nothing to do
--显示已安装
4、解压
[test@xxxxxx data]$ cd dwca/
[test@xxxxxx dwca]$ ll
total 1932
-rwxrwxrwx 1 test test 1975750 Oct 20 14:49 redis-5.0.5.tar.gz
[test@xxxxxx dwca]$ tar -zxvf redis-5.0.5.tar.gz
redis-5.0.5/
redis-5.0.5/.gitignore
redis-5.0.5/00-RELEASENOTES
redis-5.0.5/BUGS
redis-5.0.5/CONTRIBUTING
......
......此处省略
......
redis-5.0.5/utils/releasetools/changelog.tcl
redis-5.0.5/utils/speed-regression.tcl
redis-5.0.5/utils/whatisdoing.sh
5、编译
进入解压后的 redis-5.0.5 目录,执行 make 命令(稍慢)
[test@xxxxxx dwca]$ ll
total 1936
drwxr-x--- 6 test test 4096 May 16 2019 redis-5.0.5
-rwxrwxrwx 1 test test 1975750 Oct 20 14:49 redis-5.0.5.tar.gz
[test@xxxxxx dwca]$ cd redis-5.0.5
[test@xxxxxx redis-5.0.5]$ ll
total 268
-rw-r----- 1 test test 106874 May 16 2019 00-RELEASENOTES
-rw-r----- 1 test test 53 May 16 2019 BUGS
-rw-r----- 1 test test 2381 May 16 2019 CONTRIBUTING
-rw-r----- 1 test test 1487 May 16 2019 COPYING
drwxr-x--- 6 test test 4096 May 16 2019 deps
-rw-r----- 1 test test 11 May 16 2019 INSTALL
-rw-r----- 1 test test 151 May 16 2019 Makefile
-rw-r----- 1 test test 6888 May 16 2019 MANIFESTO
-rw-r----- 1 test test 20555 May 16 2019 README.md
-rw-r----- 1 test test 61797 May 16 2019 redis.conf
-rwxr-x--- 1 test test 275 May 16 2019 runtest
-rwxr-x--- 1 test test 280 May 16 2019 runtest-cluster
-rwxr-x--- 1 test test 341 May 16 2019 runtest-moduleapi
-rwxr-x--- 1 test test 281 May 16 2019 runtest-sentinel
-rw-r----- 1 test test 9710 May 16 2019 sentinel.conf
drwxr-x--- 3 test test 4096 May 16 2019 src
drwxr-x--- 11 test test 4096 May 16 2019 tests
drwxr-x--- 8 test test 4096 May 16 2019 utils
[test@xxxxxx redis-5.0.5]$ make
cd src && make all
make[1]: Entering directory `/data/dwca/redis-5.0.5/src'
CC Makefile.dep
make[1]: Leaving directory `/data/dwca/redis-5.0.5/src'
make[1]: Entering directory `/data/dwca/redis-5.0.5/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
(cd ../deps && make distclean)
......
......此处省略
......
LINK redis-benchmark
INSTALL redis-check-rdb
INSTALL redis-check-aof
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory `/data/dwca/redis-5.0.5/src' --编译完成
6、安装
redis-5.0.5 的目录结构如下,进入 src 目录后执行 make install(很快)
[test@xxxxxx redis-5.0.5]$ cd src/
[test@xxxxxx src]$ make install
CC Makefile.dep
Hint: It's a good idea to run 'make test' ;)
INSTALL install
install: cannot create regular file `/usr/local/bin/redis-server': Permission denied
make: *** [install] Error 1
--报错,用户权限不够,使用root用户
[test@xxxxxx src]$ sudo -i
[root@xxxxxx ~]# cd /data/dwca/
[root@xxxxxx dwca]# ll
total 1936
drwxr-x--- 6 test test 4096 May 16 2019 redis-5.0.5
-rwxrwxrwx 1 test test 1975750 Oct 20 14:49 redis-5.0.5.tar.gz
[root@xxxxxx dwca]# cd redis-5.0.5
[root@xxxxxx redis-5.0.5]# cd src/
[root@xxxxxx src]# make install
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
--安装完成
二、配置并启动
1、在 redis 目录下创建 bin 和 etc 两个文件夹
[root@xxxxxx redis-5.0.5]# mkdir bin
[root@xxxxxx redis-5.0.5]# mkdir etc
[root@xxxxxx redis-5.0.5]# ll
total 276
-rw-r----- 1 test test 106874 May 16 2019 00-RELEASENOTES
drwxr-x--- 2 root root 4096 Oct 20 15:27 bin
-rw-r----- 1 test test 53 May 16 2019 BUGS
-rw-r----- 1 test test 2381 May 16 2019 CONTRIBUTING
-rw-r----- 1 test test 1487 May 16 2019 COPYING
drwxr-x--- 6 test test 4096 Oct 20 15:21 deps
drwxr-x--- 2 root root 4096 Oct 20 15:27 etc
-rw-r----- 1 test test 11 May 16 2019 INSTALL
-rw-r----- 1 test test 151 May 16 2019 Makefile
-rw-r----- 1 test test 6888 May 16 2019 MANIFESTO
-rw-r----- 1 test test 20555 May 16 2019 README.md
-rw-r----- 1 test test 61797 May 16 2019 redis.conf
-rwxr-x--- 1 test test 275 May 16 2019 runtest
-rwxr-x--- 1 test test 280 May 16 2019 runtest-cluster
-rwxr-x--- 1 test test 341 May 16 2019 runtest-moduleapi
-rwxr-x--- 1 test test 281 May 16 2019 runtest-sentinel
-rw-r----- 1 test test 9710 May 16 2019 sentinel.conf
drwxr-x--- 3 test test 4096 Oct 20 15:23 src
drwxr-x--- 11 test test 4096 May 16 2019 tests
drwxr-x--- 8 test test 4096 May 16 2019 utils
注:建这两个文件夹其实是为了方便使用和管理(你也可以不用创建,直接走下面第三步):
bin:用于存放主要命令,你可以理解为springboot的主启动类
etc:用于存放 redis 的核心配置文件 redis.conf
2、移动文件
(1) 先将 redis-5.0.5 里的主配置文件 redis.conf 移动到刚创建的 etc 文件夹
[root@xxxxxx redis-5.0.5]# mv redis.conf etc/
(2) 再将 src 目录里带有绿色标识的文件全都移动到刚创建的 bin 文件夹
[root@xxxxxx src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb ../bin/
3、修改主配置文件
进入 etc 目录,修改 redis.conf 文件
[root@xxxxxx redis-5.0.5]# cd etc/
[root@xxxxxx etc]# ll
total 64
-rw-r----- 1 test test 61797 May 16 2019 redis.conf
[root@xxxxxx etc]# vi redis.conf
(1) 注释掉 bind 127.0.0.1 这一行(解决只能特定网段连接的限制;正式服务器部署如阿里云,为项目安全严格可以保留注释,自己用的话就注释掉)
(2) 将 protected-mode 属性改为 no (关闭保护模式,不然会阻止远程访问;同上,正式服务器项目上线可不修改)
(3)默认端口
(4) 将 daemonize 属性改为 yes (这样启动时就在后台启动)
(5) 设置密码(密码复杂度自己设置,此处作为参考)
安装路径重新赋权:
[root@xxxxxx data]# chown -R test:test dwca/
4、启动
在 redis 目录下执行
[test@xxxxxx redis-5.0.5]$ cd /data/dwca/redis-5.0.5/
[test@xxxxxx redis-5.0.5]$ ./bin/redis-server ./etc/redis.conf
7371:C 20 Oct 2020 15:53:26.182 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7371:C 20 Oct 2020 15:53:26.183 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=7371, just started
7371:C 20 Oct 2020 15:53:26.183 # Configuration loaded
[test@xxxxxx redis-5.0.5]$ ps -ef|grep redis
test 7372 1 0 15:53 ? 00:00:00 ./bin/redis-server 127.0.0.1:6379
test 7465 42999 0 15:54 pts/2 00:00:00 grep redis
5、登录redis客户端
[test@xxxxxx redis-5.0.5]$ ./bin/redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required. --输入ping显示报错,提示需输入密码
127.0.0.1:6379> auth 123456 --输入密码登录
OK
127.0.0.1:6379> ping
PONG --连接成功
127.0.0.1:6379>
6、设置开机自启
/data/dwca/redis-5.0.5/bin/redis-server /data/dwca/redis-5.0.5/etc/redis.conf
[root@xxxxxx ~]# cd /etc/
[root@xxxxxx etc]# vi rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
service ntpd stop
ntpdate xxx.xx.xx.xx
ntpdate xxx.xx.xx.xx
service ntpd start
service sshd restart
systemctl restart sshd
/data/dwca/redis-5.0.5/bin/redis-server /data/dwca/redis-5.0.5/etc/redis.conf