稍微记录一下Redis的安装过程。因为是新服务器,很多环境都没有配,所以遇到了一些问题。其实也都是常见问题吧,相当于做一个整合了。系统是Ubuntu 16.04,毕竟阿里云的服务器。
因为我一般直接用root,所以很少加sudo。有时候权限不够得在命令前面加个sudo。而且全文中以绝对路径为主,需要的可以自己添加环境变量。
其实最简单的当然是直接apt,不过一直流传着apt带来的各种问题(虽然我还没真正遇到过),还是选择了下载源码自行编译安装。Redis官网下载
首先肯定需要一个C++环境。因为之前已经配置过了Nginx,所以已经有了。这个不是这次的重点。然后就是下载,可以下载完了之后通过某些方式弄到服务器上(比如scp啥的),也可以直接在命令行wget,然后解压:
$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
$ tar xzf redis-5.0.5.tar.gz
$ cd redis-5.0.5
进入根目录后先make test一下,不出意料崩了:
You need tcl 8.5 or newer in order to run the Redis test.
那装一个呗。tcl源码下载地址
下载之后configure、make && make install一条龙就好了:
$ wget http://downloads.sourceforge.net/tcl/tcl8.6.9-src.tar.gz
$ tar xzvf tcl8.6.9-src.tar.gz -C /usr/local/
$ cd /usr/local/tcl8.6.9/unix/
$ ./configure
$ make && make install
然后回到Redis,继续make test。这次遇到的问题又不一样了:
the used_memory of replica is much larger than master.
这啥意思。查半天也没搞清楚是啥问题。后来想了一个奇怪的解决方案:
$ cd /usr/local/redis-5.0.5/deps
$ make hiredis lua jemalloc linenoise
然后再make test,这次就能通过test了。然后make && make install,出现一排install就安装完了:
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
这问题为什么会产生并不清楚,我看网上很多人遇到不一样的问题,但最后都是用这一条命令解决的。这就很有意思了。对我来说,这问题的性质和烫烫烫屯屯屯差不多吧(笑)。
然后再进行一些简单的配置,主要是修改Redis根目录下的redis.conf,找到守护进程并打开。守护进程的作用主要就是防止在后台被kill掉,不然每次都要nohup,多麻烦:
$ vim /usr/local/redis-5.0.5/redis.conf
$ daemonize yes # 打开守护进程
然后就可以启动看一下效果了,完成一套增和查,顺便删库(不会删库怎么行)。
$ /usr/local/redis-5.0.5/src/redis-server /usr/local/redis-5.0.5/redis.conf
$ redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> flushall
OK
结束。