在OpenShift应用平台上编译和部署Redis
OpenShift官方的Application没有支持Redis,但是由于OpenShift开放了SSH权限,并且所有类型的Application都有编译环境,所以我们可以将带源码的软件编译和部署到OpenShift。也就是说,只要有充分的想象力,就可以将任何喜欢的应用部署到OpenShift,这样我们就可以让OpenShift支持Redis了。
编译Redis
Redis的编译过程非常简单,先通过SSH登陆到OpenShift,然后几条命令就搞定了:
1 | 切换到临时目录 |
安装Redis
由于没有权限,我们当然不能期望通过make install
这样一条简单的命令来自动安装。这里说的“安装”,其实就是把可执行文件拷贝到指定的目录,这里我们假定为${OPENSHIFT_DATA_DIR}
目录,即OpenShift应用的data目录。
1 | 继续上一步的工作 |
到这里Redis已经在OpenShift安装完成了,但是还不能直接运行,我们需要先配置一下。
配置Redis
由于配置项比较多,直接放出我的配置文件模板,点此下载
下载后上传到redis安装目录下的conf目录,覆盖掉原来的文件。
为了方便通用,模板文件里使用了OpenShift的环境变量来配置参数,使用时,只需要使用erb
命令就可以生成适合你应用的配置文件:
1 | erb ${OPENSHIFT_DATA_DIR}/redis/conf/redis.conf.erb > ${OPENSHIFT_DATA_DIR}/redis/conf/redis.conf |
注意:
对于OpenShift,关键的一个配置就是
bind
项。由于Redis默认绑定127.0.0.1,而OpenShift应用的local ip并不是这个,所以必须修改为bind<%= ENV['OPENSHIFT_PHP_IP'] %>
,我在刚开始测试时,就是由于这个配置项没注意导致客户端一直不能连接。测试时,将
logfile
设为空,这样可以看到redis-server的输出;测试后,设为日志文件路径就行了。
测试Redis
服务端测试
使用下面的命令来启动Redis服务端,如果没有错误提示就说明启动成功了。这时候redis-server运行在前台,所有的日志都显示在控制台上。
1 | {OPENSHIFT_DATA_DIR}/redis/sbin/redis-server ${OPENSHIFT_DATA_DIR}/redis/conf/redis.conf |
客户端ping测试
保持redis-server的窗口一直运行,这时我们需要启动另一个SSH窗口启动redis-cli命令行客户端。
先用ping
命令测试一下连接是否通畅:
1 | {OPENSHIFT_DATA_DIR}/redis/sbin/redis-cli -h ${OPENSHIFT_PHP_IP} -p 6379 ping |
如果服务端回复PONG
,说明连接没有问题。
客户端命令测试
这时候我们就可以使用命令行客户端连接服务器了:
1 | 连接 |
测试完成之后,我们就可以将将配置模板里的logfile
设为具体的文件,让Redis服务端后台运行时将日志输出到文件。
Redis应用i
Redis经常被用来做缓存,如果你的博客是Typecho或WordPress,你可以参考下面的文章将Redis作为网站缓存来加速网站:
参考资料
在OpenShift应用平台上编译和部署Redis
https://www.shuyz.com/posts/compile-and-deploy-redis-on-openshift/