一、下载与安装
1.下载
在http://www.redis.cn/download.html下载最新稳定版本,例如:Redis 3.0.7,第一个小数点后面的数字为偶数表示稳定版,奇数为不稳定版本
2.安装
2.1GCC安装
yum -y install gcc
yum -y install gcc-c++
2.2Redis安装
将下载的redis-3.0.7.tar.gz上传到主机上(UBUNTU),执行如下命令
tar xvf redis-3.0.7.tar.gz
cd redis-3.0.7
make或者make MALLOC=libc(如果报error: jemalloc/jemalloc.h: No such file or directory用它)
sudo make install
二、测试
1.服务端:
在任意目录执行以下命令:
nohup redis-server > redis.log &
注:如果启动的时候没有使用上面的命令执行或者在redis.conf中指定daemonize = yes,那么你使用#root@hostname redis-server启动后,不能使用CTRL+Z,否则你会发现你的客户端连接不上
2.客户端:
在任意目录执行一下命令:
redis-cli
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> exit
如果要连接其他机器
redis-cli -h 192.168.1.100 -p 6380
注意:
在按照官网使用wget http://download.redis.io/releases/redis-3.2.9.tar.gz下载总是不成功,就使用迅雷(广告一下)下载然后上传的。
一些安装完可能需要你修改的配置
主机配置:
- 修改主机单个进程最大文件打开数
/etc/security/limits.conf文件中添加下面两行:
* soft nofile 10240
* hard nofile 10240
- 修改总的最大文件打开数
/etc/sysctl.conf 文件中 添加 :fs.file-max=655350
- 内存分配策略:
/**
0 :用户申请内存的时候,系统会判断剩余的内存多少,如果不够的话那么就会失败。
1: 用户申请内存的时候,系统不进行任何检查任务内存足够用,直到使用内存超过可用内存。
2: 用户一次申请的内存大小不允许超过可用内存的大小
**/
vm.overcommit_memory=1
- 修改单端口队列大小
/etc/sysctl.conf 文件中添加 :net.core.somaxconn=1024
- 大内存页面关闭
/etc/rc.local 文件中添加:echo never > /sys/kernel/mm/transparent_hugepage/enabled
Redis配置:
- Redis以后台方式启动
daemonize yes
- Redis允许访问的IP地址范围
- 如果注掉所有的bind设置,则表示允许任何客户端连接
- 否则bind设置了那些IP,就那些IP可以连接Redis
- Redis启动或者关闭保护模式
protected-mode no
- 最大内存
maxmemory 128*1024*1024
- 内存管理策略
maxmemory-policy volatile-lru
- 端口号
port 6380
- 日志文件名
- 日志文件目录
- PID文件名
- 持久化文件存储目录与文件名
- 同步内存数据到持久化文件策略
三、开机启动
方式一
1.设置redis.conf中daemonize为yes,确保守护进程开启,也就是在后台可以运行.(设置为yes后,启动时好像没有redis的启动界面,不知道为什么)
#vi编辑redis安装目录里面的redis.conf文件 [root@localhost /]# vi /usr/redis/redis-3.2.4/redis.conf
2.复制redis配置文件(启动脚本需要用到配置文件内容,所以要复制)
#1.在/etc下新建redis文件夹 [root@localhost /]# mkdir /etc/redis #2.把安装redis目录里面的redis.conf文件复制到/etc/redis/6379.conf里面,6379.conf是取的文件名称,启动脚本里面的变量会读取这个名称,所以要是redis的端口号改了,这里也要修改 [root@localhost redis]# cp /usr/redis/redis-3.2.4/redis.conf /etc/redis/6379.conf
3.复制redis启动脚本
#1.redis启动脚本一般在redis根目录的utils,如果不知道路径,可以先查看路径 [root@localhost redis]# find / -name redis_init_script /usr/redis/redis-3.2.4/utils/redis_init_script #2.复制启动脚本到/etc/init.d/redis文件中 [root@localhost redis]# cp /usr/redis/redis-3.2.4//utils/redis_init_script /etc/init.d/redis
4.修改启动脚本参数
[root@localhost redis]# vi /etc/init.d/redis #在/etc/init.d/redis文件的头部添加下面两行注释代码,也就是在文件中#!/bin/sh的下方添加 # chkconfig: 2345 10 90 # description: Start and Stop redis
如图
同时还要修改参数,指定redis的安装路径
修改完成后按 Esc ,再按 :wq + Enter(回车) 保存并退出
修改完成后的截图
5.启动redis
打开redis命令:service redis start
关闭redis命令:service redis stop
设为开机启动:chkconfig redis on
设为开机关闭:chkconfig redis off
方式二
1.编写脚本
[root@localhost ~]# vi /etc/init.d/redis
复制下面代码到脚本中(注意要修改里面redis的安装路径,以/usr/redis/redis-3.2.4路径为例)(这段代码就是redis根目录 /utils/redis_init_script 启动脚本的代码)
#!/bin/sh # chkconfig: 2345 10 90 # description: Start and Stop redis REDISPORT=6379 EXEC=/usr/redis/redis-3.2.4/src/redis-server CLIEXEC=/usr/redis/redis-3.2.4/src/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/usr/redis/redis-3.2.4/redis.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 ;; restart) "$0" stop sleep 3 "$0" start ;; *) echo "Please use start or stop or restart as first argument" ;; esac
3.保存退出,设置权限
[root@localhost ~]# chmod 777 /etc/init.d/redis
4.启动redis
[root@localhost ~]# service redis start
启动部分转载自redis设置开机启动