欢迎您, 来到 宁时修博客.^_^

Redis 系列 --- 01、Redis 5.0.4 安装

2019/08/09 言则行 Redis 214
Redis 系列 --- 01、Redis 5.0.4 安装

一、Redis官方介绍

    Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。



二、Redis下载安装

    Redis 使用标准版本标记进行版本控制:major.minor.patchlevel。偶数的版本号表示稳定的版本, 例如 1.2,2.0,2.2,2.4,2.6,2.8,奇数的版本号用来表示非标准版本,例如2.9.x是非稳定版本,它的稳定版本是3.0。


    1、yum方式安装Redis

    yum方式安装的Redis版本较低,当然,不追求新特性、新功能什么的,yum方式安装Redis即可。

yum install redis -y


  336.png

    上面的图是 yum方式安装的Redis,版本为 3.2.12,内存分配为 jemalloc 3.6.0。



    2、编译安装Redis,自由控制Redis版本

    自由选用 Redis版本,想用哪个版本就用哪个版本,不管是尝鲜新版本,还是生产使用,都较为方便。

    

$ cd /usr/local/src
$ wget http://download.redis.io/releases/redis-5.0.4.tar.gz
$ tar xzf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make


    这样,Redis编译好的二进制命令会放在 当前路径下的 src目录里:

$ pwd
/usr/local/src/redis-5.0.4/src

$ ll redis-*
-rwxr-xr-x 1 root root 4366776 Aug  9 09:19 redis-benchmark
-rw-rw-r-- 1 root root   29605 Mar 19 00:21 redis-benchmark.c
-rw-r--r-- 1 root root  109160 Aug  9 09:19 redis-benchmark.o
-rwxr-xr-x 1 root root 8102720 Aug  9 09:19 redis-check-aof
-rw-rw-r-- 1 root root    7175 Mar 19 00:21 redis-check-aof.c
-rw-r--r-- 1 root root   28912 Aug  9 09:19 redis-check-aof.o
-rwxr-xr-x 1 root root 8102720 Aug  9 09:19 redis-check-rdb
-rw-rw-r-- 1 root root   13541 Mar 19 00:21 redis-check-rdb.c
-rw-r--r-- 1 root root   66008 Aug  9 09:19 redis-check-rdb.o
-rwxr-xr-x 1 root root 4807136 Aug  9 09:19 redis-cli
-rw-rw-r-- 1 root root  266751 Mar 19 00:21 redis-cli.c
-rw-r--r-- 1 root root  928680 Aug  9 09:19 redis-cli.o
-rwxr-xr-x 1 root root 8102720 Aug  9 09:19 redis-sentinel
-rwxr-xr-x 1 root root 8102720 Aug  9 09:19 redis-server
-rwxrwxr-x 1 root root    3600 Mar 19 00:21 redis-trib.rb


    这就编译好Redis了,但是一些文件、二进制脚本都在这个源码包里,所以Redis也提供了一个安装设置脚本,在 redis-5.0.4/utils 目录下,叫做 install_server.sh,执行这个脚本,按照提示就可设置Redis,执行脚本前还需要 make install 一下:

$ make install
cd src && make install
make[1]: Entering directory `/usr/local/src/redis-5.0.4/src'
    CC Makefile.dep
make[1]: Leaving directory `/usr/local/src/redis-5.0.4/src'
make[1]: Entering directory `/usr/local/src/redis-5.0.4/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: Leaving directory `/usr/local/src/redis-5.0.4/src'

$ cd utils/
$ ./install_server.sh 

Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!



    我们可以看到这个脚本设置了一些文件路径、二进制命令路径,这是脚本默认的路径,也可以自己设置:

Please select the redis port for this instance: [6379] 6380
Please select the redis config file name [/etc/redis/6380.conf] /opt/redis/redis_6380.conf
Please select the redis log file name [/var/log/redis_6380.log] /opt/redis/redis_6380.log
Please select the data directory for this instance [/var/lib/redis/6380] /opt/redis/
Please select the redis executable path [/usr/local/bin/redis-server] /opt/redis/
Selected config:
Port           : 6380
Config file    : /opt/redis/redis_6380.conf
Log file       : /opt/redis/redis_6380.log
Data dir       : /opt/redis/
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6380.conf => /etc/init.d/redis_6380
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

    这个 二进制命令路径 改变不了,这可能是脚本默认选择加入到 $PATH 中。


    我们看下这个:

Copied /tmp/6380.conf => /etc/init.d/redis_6380

    

    这是将 启动脚本加入 Linux系统的服务管理中,Linux 服务管理有两种方式:service和systemctl,CentOS 7以上使用 systemctl 来管理,CentOS 7 以下使用 service 来管理。搜索一下 redis_6380*,会有什么了:

$ find / -name "redis_6380*"
/opt/redis/redis_6380.conf
/opt/redis/redis_6380.log
/run/redis_6380.pid
/run/systemd/generator.late/redis_6380.service
/run/systemd/generator.late/runlevel5.target.wants/redis_6380.service
/run/systemd/generator.late/runlevel4.target.wants/redis_6380.service
/run/systemd/generator.late/runlevel3.target.wants/redis_6380.service
/run/systemd/generator.late/runlevel2.target.wants/redis_6380.service
/sys/fs/cgroup/devices/system.slice/redis_6380.service
/sys/fs/cgroup/systemd/system.slice/redis_6380.service
/etc/rc.d/init.d/redis_6380

    这显示的是reids_6380相关文件,且刚才执行的脚本 把redis启动脚本加入到 systemctl 服务管理中,我们可以使用如下命令来 控制 redis启动关闭:

systemctl start redis_6380    # 启动redis_6380
systemctl stop redis_6380     # 关闭redis_6380
systemctl restart redis_6380  # 重启redis_6380,先stop,再start


systemctl status redis_6380   # 查看redis_6380 运行状态

● redis_6380.service - LSB: start and stop redis_6380
   Loaded: loaded (/etc/rc.d/init.d/redis_6380; bad; vendor preset: disabled)
   Active: active (exited) since Fri 2019-08-09 09:56:03 CST; 15min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 16645 ExecStart=/etc/rc.d/init.d/redis_6380 start (code=exited, status=0/SUCCESS)

Aug 09 09:56:03 ip-172-27-0-16.lynn systemd[1]: Starting LSB: start and stop redis_6380...
Aug 09 09:56:03 ip-172-27-0-16.lynn redis_6380[16645]: /var/run/redis_6380.pid exists, process is already running or crashed
Aug 09 09:56:03 ip-172-27-0-16.lynn systemd[1]: Started LSB: start and stop redis_6380.

# 看得出来,主要还是 /etc/rc.d/init.d/redis_6380  这个脚本在起作用。


    开机自启设置

$ systemctl enable redis_6380   # 由 systemctl服务控制redis_6380 开机自启
redis_6380.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig redis_6380 on
# 提示我们 redis_6380.service 不是本机服务,改为由 chkconfig 控制

$ chkconfig --list

netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off
redis_6380     	0:off	1:off	2:on	3:on	4:on	5:on	6:off
# 显示 redis_6380 在Linux init 2、3、4、5模式中开机自启

$ chkconfig --del redis_6380   # 取消开机自启
$ chkconfig --add redis_6380   # 设置开机自启
$ chkconfig --level 2 redis_6380 off  # 在Linux init 2模式中关闭开机自启
$ chkconfig --list redis_6380  # 查看

redis_6380     	0:off	1:off	2:off	3:on	4:on	5:on	6:off



    这样就编译安装好了 Redis,本机测试使用下:

$ redis-cli -p 6380
127.0.0.1:6380> 
127.0.0.1:6380> set name tombosa
OK
127.0.0.1:6380> get name
"tombosa"
127.0.0.1:6380>


三、高度自定安装,可多版本,多实例

    

    步骤:

cd /usr/local/src
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
make
make PREFIX=/usr/local/redis install

mkdir /usr/local/redis/{conf,data,logs}
cp redis.conf /usr/local/redis/conf/
cd /usr/local/redis/conf/

    以上方式安装redis,可多版本,多实例,二进制命令也相互不影响。


    配置好 redis.conf 文件,用以下方式启动redis:

/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
点赞
说说你的看法

所有评论: (0)