在 Ubuntu 上搭建单机版 Redis

2018-01-15 14:20:02来源:https://www.5-wow.com/article/detail/69作者:潘军杰的博客人点击

分享
为什么用到 Redis?

最近开发一个类似抢拍的拍卖 App;有个环节是需要秒刷新的,而且多少个商品同时需求秒请求订单数据,这时想想长期以往 MySQL 肯定应付不了, 所以采用了内存数据库的方案,当然就先到 Redis 了;其实 memcached 也是比较好的选择,但后期的数据结构需保留一定的灵活性,所以选择了 Redis。终端请求的数据,生命周期也很短,只要商品产生了新的订单数据后,老的数据直接存放到 MySQL,最后把它直接删掉。


对 Redis 有什么要求

因为若干个项目需要连接 Redis,所以必须开放 Redis 外网访问权限,再设置个足够强的密码;另外 Ubuntu 正常或意外系统重启后,能自动启动 Redis。


Redis 搭建步骤

到 Redis 官网[下载页](/2014th7cj/d/file/p/20180115/download "下载页")直接下载最新的版本, [点击下载](/2014th7cj/d/file/p/20180115/redis-4.0.2.tar.gz "Redis 4.0.2") Redis 4.0.2 单独包 ,安装文件是 tar.gz 格式的,然后把文件放在 /usr/local/ 路径下。


也可以使用快捷方式在系统终端下载:


```bash


cd /usr/local/


wget /2014th7cj/d/file/p/20180115/redis-4.0.2.tar.gz


```



**解压编译安装**


```bash


tar xzf redis-4.0.2.tar.gz


cd redis-4.0.2


make


```


等待片刻,Redis 就编译安装完成了,注意这时 Redis 和系统还是没有什么关联的,它就像绿色免安装包一样,以文件形式存在,需要我们手动启动、关闭,很不方便。



**启动 Redis**


```


src/redis-server


```


这时你会看到系统终端上显示 Redis 在6379端口启动成功,这时如果按下 ctrl+c 会终止 Redis 的正在使用的进程,自然 Redis 会自动关闭,这时需要一个进程守护,才不会退出。可以这样守护进程启动:


```


nohup src/redis-server&


```


Redis 还提供一个客户端,以便测试和联调使用,启动方法:


```bash


src/redis-cli


```


在客户端里,可以做任何数据库操作,如:


```bash


redis> set foo bar


OK


redis> get foo


"bar"


redis> shutdown save


```



**开放 Redis 外网访问**


默认配置文件,只能本地服务器使用,外部服务器是连接不上的,这时我们需要修改他的配置文件,让外网也能访问到它,这个分解为几步,先注释掉 Redis 内网 Ip 绑定,然后置一个密码,最后使它采用后台进程服务方式运行,这些都是在配置文件里可以完成的。


配置文件在刚才解压缩的根路径下:


```bash


/usr/local/redis-4.0.2/redis.conf


```


我们把默认配置文件拷贝一份,命名为 6379.conf


```bash


cp /usr/local/redis-4.0.2/redis.conf /usr/local/redis-4.0.2/6379.conf


```


打开新建的配置文件修改:


```bash


nano /usr/local/redis-4.0.2/6379.conf


```


把 bind 选项注释为


```


#bind 127.0.0.1


```


把 protected-mode 设置为 no


```


protected-mode no


```


搜索 masterauth 选项,在底下增加一行,设置远程密码:


```bash


requirepass 123456


```


我们暂且把密码定为 123456 吧。


把 daemonize 设置为 yes,这个很重要,是采用后台进程服务方式运行的关键。


```


daemonize yes


```


这四项都配置好了,我们保存配置文件,在客户端 src/redis-cli 上关闭 Redis,并在系统终端重新启动。


```


redis> shutdown save


```


系统终端启动 Redis


```


src/redis-server


```


这时 Redis 就是后台进程服务方式启动了,我们 ctrl+c 并不会自动关闭它。



**开机启动 Redis**


一半的工作已经做完了,最后就是设置 Ubuntu 开机自动启动 Redis 了。


进入到系统的启动目录


```


cd /etc/init.d


nano redis


```


把以下脚本粘贴到 redis 文件中:


#!/bin/sh
# chkconfig: 2345 10 90
# description: Start and Stop redis
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/redis-4.0.2/src/redis-server
CLIEXEC=/usr/local/redis-4.0.2/src/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis-4.0.2/${REDISPORT}.conf"
AUTHPWD=123456
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 "Try save and stopping ..."
$CLIEXEC -p $REDISPORT -a $AUTHPWD shutdown save
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart)
"$0" stop
sleep 3
"$0" start
;;
*)
echo "Please use start or stop as first argument"
;;
esac

保存脚本文件 redis


然后执行


```


sed -i 's//r$//' redis


```


然后设置权限


```


chmod +x redis


```


最后设置开机启动 redis 脚本


```


sysv-rc-conf redis on


```


这时,Ubuntu 正常或意外重启后,Redis 会跟着自动启动了。


(附加)取消开机启动


```


sysv-rc-conf redis off


```


(附加)查看开机启动


```


sysv-rc-conf --list|grep redis


```


/etc/init.d/redis 启动脚本,会因自己的安装 Redis 的目录不同而有所区别,另外需要注意的是,上面也需要到 Redis 的远程密码。


这些设置都好了,你发现你可以通过系统快捷方式启动、停止、重启 Redis 了


```


service redis start


service redis stop


service redis restart


```


为了验证可行性,你可以在 PC 上安装一个 RedisDesktopManager 客户端,通过外部 ip 连接都 Redis 来测试。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台