![e4a9a7908c2e203e642985de97d147f3.png](https://i-blog.csdnimg.cn/blog_migrate/def8f270ea6e12feec72a9c772cffe6f.jpeg)
![3e619e4b32e9c8bd7512e88afbe6117c.png](https://i-blog.csdnimg.cn/blog_migrate/5ca18d3dbd375d6effd231d53407569f.png)
先开始我们的准备工作,下载安装redis (安装环境oel 6.3)
Redis的兼容性非常好,在很多的系统都可以直接通过下载redis源代码编译安装使用。我们可以通过http://downloag.redis.io/redis-stable.tar.gz来下载最新最稳定的版本,当然也可以根据需求,在官网下载相应版本的Redis。这里就不一一介绍了。
Linux之下,下载完安装包解压后直接make 就可以对其进行安装编译,命令如下:
# wget
http://download.redis.io/redis-stable.tar.gz
# tar -zxvf redis-stable.tar.gz
# cd redis-stable
# make
Redis 在安装的过程中除了需要安装一些必要的gcc包以外,并没有什么其他的外部依赖,直接make test 后make install 就可以了,但是这里有的时候会报错,需要你安装一个tcl的库才可以执行make test,报错信息如下:
# make test
cd src && make test
make[1]: Entering directory `/usr/local/src/redis-stable/src'
CC Makefile.dep
make[1]: Leaving directory `/usr/local/src/redis-stable/src'
make[1]: Entering directory `/usr/local/src/redis-stable/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/src/redis-stable/src'
make: *** [test] Error 2
直接通过yum 进行tcl库的安装就可以了
# yum install tclmake test 过后,我们就可以安装了,在make test的过程中,其实就是测试所有在redis上的命令是否可以完美执行,如果没问题就直接OK,所有的test都没问题的话,会提示# \o/ All tests passed without errors! 这样我们就可以继续安装了。
安装的过程也比较简单,直接通过make install就OK,当然这里如果我们想要为我们的redis设定一个安装目录,可以通过PREFIX来定义,注意,这里的PREFIX必须要大写。
# make PREFIX=/usr/local/redis install
cd src && make install
make[1]: Entering directory '/usr/local/src/redis-stable/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-stable/src'
基本上到这里redis 就安装完了。是不是比较简单?哈哈~~
2 Redis启动和关闭在安装完Redis后,我们可以通过进入到目录查看到,Redis的安装目录只有一个bin文件,在bin文件之下,有5个文件,分别是redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server,分别是指性能测试、检查aof日志、检查rdb日志、连接客户端工具和服务进程,这五个文件就组成了我们的redis。
启动redis 一般有两种方式:
1、直接启动
比较适用于开发环境,直接通过redis-server 就可以启动redis:
[root@sandata bin]# redis-server
46545:C 31 Jan 2019 17:43:28.308 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
46545:C 31 Jan 2019 17:43:28.308 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=46545, just started
此时我们就可以通过redis-cli进行操作了。
[root@sandata redis]# ./bin/redis-cli
127.0.0.1:6379> set aa www.sandata.com.cn
OK
127.0.0.1:6379> get aa
"www.sandata.com.cn"
redis服务器默认的端口是6379,我们也可以通过--port参数来自定义端口
[root@sandata bin]# redis-server --port 6380
46556:C 31 Jan 2019 17:47:35.551 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
46556:C 31 Jan 2019 17:47:35.551 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=46556, just started
46556:C 31 Jan 2019 17:47:35.551 # Configuration loaded
46556:M 31 Jan 2019 17:47:35.551 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.3 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-' | Port: 6380
| `-._ `._ / _.-' | PID: 46556
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
2、通过初始化脚本
除了通过redis-server启动Redis以外,我们还可以通过初始化脚本启动redis,在Redis源码目录utils文件夹中有一个redis_init_script脚本,Redis可以直接通过shell脚本随着系统自动运行,在生产库之中我们比较推荐使用这种脚本的方式来启动Redis。
脚本如下:
[root@sandata ~]# cd /usr/local/src/redis-stable/utils
[root@sandata utils]# cat redis_init_script
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides: redis_6379
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Redis data structure server
# Description: Redis data structure server. See https://redis.io
### END INIT INFO
REDISPORT=6379 # 端口号
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
我们需要对其配置运行方式和持久化文件、日志文件的存储位置。
1) 先将初始化脚本赋值到/etc/init.d目录中,文件名可以设置为redis_+端口号,然后修改脚本中的REDISPORT=6379 部分,改成需要通信的端口号即可。
2) 创建需要的文件夹。
# mkdir -p /etc /redis ----配置文件存放目录
# mkdir -p /etc/redis/端口号 ----持久化文件存放目录
3) 将源码中的redis.conf文件拷到/etc/redis目录中,以端口号命名,并修改以下参数。
daemonize no -> daemonize yes
pidfile /var/run/redis_6379.pid ->pidfile /var/run/redis_相应端口号.pid
port 6379 ->port 相应的端口号
dir ./ ->dir /var/redis/端口号
现在就可以通过/etc/init.d/redis_port start 来启动redis。如果需要让redis随着系统启动,则需要执行如下命令:
sudo update-rc.d redis_port defaults
即可。
当然停止redis的话还是比较简单的,直接执行shutdown 就可以了:
127.0.0.1:6379> shutdown
未完待续!