CentOS 7 编译安装Redis
2015-01-15 20:53
441 查看
在CentOS(Linux)下编译安装Redis(V2.8.19)之后,总结的注意事项如下:
下载安装Redis:
TIPS: 可先到官网下载Redis文件,同时可以查看官网的编译安装方法(
传送门 )。
在Redis根目录下,直接
TCL8.6非默认安装的时候(CentOS版本偏低),一定要在PATH的路径中创建文件连接到tclsh8.6,同时注意,文件名称必须是tclsh8.5/tclsh8.6,因为在make test的时候,会使用which查找8.5或者8.6版本的tcl
安装:直接
安装后,默认是没有配置文件的,需要配置的话,在安装成功后可以使用utils里面的
install_server.sh里面有很多bug,如果不修改你将会发现/etc/init.d/redis_***是无法正常使用的——里面的配置文件有很多\n,未被转义.
配置:
为了防止内存爆满导致系统崩溃,需要设置/etc/redis/*.cnf中的maxmemory
防止报错,可以调整内存分配策略
在完成之后,可以开启Redis,测试下是否正常。
下面测试了给testkey赋值为value:
这里用cat -v file_name 查看下文件里面是否有windows的结尾符。
然后将这个文件放在 /etc/init.d/redis 给一下执行权限 chmod下。
然后 chkconfig redis on 设置开机启动
启动或者停止 redis
service redis start #或者 /etc/init.d/redis start
service redis stop #或者 /etc/init.d/redis stop
完毕!
下载安装Redis:
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz $ tar xzf redis-2.8.19.tar.gz $ cd redis-2.8.19 $ make
TIPS: 可先到官网下载Redis文件,同时可以查看官网的编译安装方法(
传送门 )。
在Redis根目录下,直接
make
make成功后,如果需要
make test,则需要配置TCL8.5/TCL8.6来进行测试
TCL8.6非默认安装的时候(CentOS版本偏低),一定要在PATH的路径中创建文件连接到tclsh8.6,同时注意,文件名称必须是tclsh8.5/tclsh8.6,因为在make test的时候,会使用which查找8.5或者8.6版本的tcl
安装:直接
make install,默认安装在
/usr/local/bin下,如果需要设置自定义路径,用
make PREFIX=/usr/local/redis install来安装
安装后,默认是没有配置文件的,需要配置的话,在安装成功后可以使用utils里面的
install_server.sh来配置服务器.
install_server.sh里面有很多bug,如果不修改你将会发现/etc/init.d/redis_***是无法正常使用的——里面的配置文件有很多\n,未被转义.
line 163,177: if [ !`which chkconfig` ]; then中 !应该和`which chkconfig`之间有个空格没有出现
line 165: echo之后应该需要一个-e参数,表示允许使用转义字符.
配置:
为了防止内存爆满导致系统崩溃,需要设置/etc/redis/*.cnf中的maxmemory
防止报错,可以调整内存分配策略
/etc/sysctl.conf 这个是Redis日志中可以看到的建议: 添加vm.overcommit_memory=1保存,并执行:sysctl vm.overcommit_memory=1使之生效 /proc/sys/vm/overcommit_memory,这个里面就是overcommit_memory值,这个可以被上面的设置更新. 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
在完成之后,可以开启Redis,测试下是否正常。
下面测试了给testkey赋值为value:
$ redis-cli 127.0.0.1:6379>set testkey value OK 127.0.0.1:6379>get testkey "value" 127.0.0.1:6379>exit 加一个开机启动的脚本:github上的:https://gist.github.com/markalanevans/1335694 #!/bin/sh # # redis Startup script for Redis Server # # chkconfig: - 90 10 # description: Redis is an open source, advanced key-value store. # # processname: redis-server # config: /etc/redis.conf # pidfile: /var/run/redis.pid PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/opt/redis/redis-server REDIS_CLI=/opt/redis/redis-cli PIDFILE=/var/run/redis.pid CONF="/opt/redis/redis.conf" case "$1" in start) if [ -f $PIDFILE ] then echo -n "$PIDFILE exists, process is already running or crashed\n" else echo -n "Starting Redis server...\n" $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo -n "$PIDFILE does not exist, process is not running\n" else PID=$(cat $PIDFILE) echo -n "Stopping ...\n" $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; esac
这里用cat -v file_name 查看下文件里面是否有windows的结尾符。
windows的文件换行符是的"\r\n" 可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m有的话用这个命令替换下:
sed 's/\r//' 原文件 >转换后文件 这是我踩过的坑!
然后将这个文件放在 /etc/init.d/redis 给一下执行权限 chmod下。
然后 chkconfig redis on 设置开机启动
启动或者停止 redis
service redis start #或者 /etc/init.d/redis start
service redis stop #或者 /etc/init.d/redis stop
完毕!
相关文章推荐
- Centos下给php安装Redis扩展及编译问题解决
- CentOS 6.4 x64 Redis 3.0.3 编译安装
- centos手动编译安装apache、php、mysql、redis扩展
- CentOS6下编译、安装Redis源码
- CentOS 7 编译安装 redis 4
- Centos编译安装 LAMP (apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
- 在CentOS6.5下编译安装redis3.2.8
- CentOS编译安装php5.5 libiconv libmcrypt libevent memcached redis以及扩展
- centos_6.5_x64 上快速编译安装redis
- Centos 下编译安装Redis
- centos6.5环境Redis下载及编译安装
- centos6.5环境Redis下载及编译安装
- Centos 下编译安装Redis
- Centos 下编译安装Redis
- CentOS 7下redis的编译安装
- 阿里云64位centos6.3系统上编译安装redis
- Centos编译安装 LAMP (apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
- Centos 编译安装配置redis
- centos5.5 编译安装 redis2.2.11
- CentOS6.4 编译安装Redis