一、redis在Linux上的安装
资料:链接:http://pan.baidu.com/s/1gff9mQB 密码:hlxe
1)安装redis编译的c环境,yum install gcc-c++
2)将redis-3.0.0.tar.gz上传到Linux系统中
3)解压到/usr/local下
tar -xvf redis-3.0.0.tar.gz -C /usr/local
4)进入redis-3.0.0目录 使用make命令编译redis
5)在redis-3.0.0目录中 使用make PREFIX=/usr/local/redis install命令安装redis到/usr/local/redis中
6)拷贝redis-3.0.0中的redis.conf(redis-3.0.0中)到安装目录redis中
7)修改redis.conf,修改内容为daemonize yes(后台启动)
8)启动redis 在bin下执行命令redis-server redis.conf
9)如需远程连接redis,需配置redis端口6379在linux防火墙中开发
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/etc/rc.d/init.d/iptables save
命令为:bin/redis-cli -h 192.168.13.129 -p 6379
关闭:bin/redis-cli shutdown
启动后看到如上欢迎页面,但此窗口不能关闭,窗口关闭就认为redis也关闭了(类似Tomcat通过bin下的startup.bat的方式)
解决方案:可以通过修改配置文件 配置redis后台启动,即服务器启动了但不会穿件控制台窗口
将redis.conf文件中的daemonize从false修改成true表示后台启动
使用命令查看6379端口是否启动ps -ef | grep redis
二、一些常规操作:
1.检查是否存活ping pong
2.String类型参数
>set str1 abc
>get str1
3.查询redis中所有key值
>keys *
4.自增(减)操作
>incr key1(如果key1不存在,创建并赋值为1)
>decr key1
>get key1(get取到的为字符串)
>del key1
5.Hash类型参数
>hset hash1 field1 1
>hget hash1 field1(得到的值为“1”)
>hkeys hash1(查看hash中所有key)
>hvals hash1(查看hash中所有的value)
>hgetall hash1(全部查取)
>hdel hash1 field1(删除hash表中某一key)
6.List类型参数
>lpush list1 1 2 3 4 5 6(从左边添加,存入的内容为6 5 4 3 2 1)
>rpush list1 a b c d e(从右边添加,a b c d e)
>lrange list1 0 -1(查询所有元素,内容6 5 4 3 2 1 a b c d e)
>lpop list1
>rpop list1
7.Set类型参数
>sadd set1 a b a b c d(添加内容,重复内容只保留一个)
>srem set1 a(删除a)
>sadd set2 c d e f g
>sdiff seta setb(a-b,取差集)
>sinter set1 set2(交集)
>sunion set1 set2(并集)
8.SortedSet(zset)
>zadd zset1 1 a 3 b 2 c 5 d(1 3 2 5为分数,用于元素排序)
>zrange zset1 0 -1
>zrem zset1 a
>zrevrange zset1 0 -1(降序排序)
>zrevrange zset1 0 -1 withscores(分数也查询出)
9.设置键值key的生命周期
>expire key1 100(单位为秒)
>ttl key1(查询剩余生命周期,整数表示正在倒计时,-1表示永久有效,-2表不存在)
>Persist key1(将设置生命周期的key变为持久化)
三、Redis集群的搭建
Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
Redis集群至少需要6台服务器。
搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006
1.拷贝6个redis实例(创建一个redis-cluster文件夹存放)
1)cd /usr/local
2)mkdir redis-cluster
3)cp -r redis/bin/ redis-cluster/redis01(如有appendonly.aof或dump.rdb,删掉)
4)cd /usr/local/redis-cluster/redis01/
5)vi redis.conf
-----------------------------------
port 7001(修改端口号)
cluster-enabled yes(去掉注释)
-----------------------------------
6)拷贝其他5份,依次修改端口号
2.创建一个启动redis实例批处理并启动
cd /usr/local/redis-cluster
vi start-all.sh
-----------------------------------------------
redis01/redis-server redis.conf
redis02/redis-server redis.conf
redis03/redis-server redis.conf
redis04/redis-server redis.conf
redis05/redis-server redis.conf
redis06/redis-server redis.conf
-----------------------------------------------
chmod u+x start-all.sh(授权当前用户可执行)
./start-all.sh(启动,可通过ps -aux | grep redis查看)
3.拷贝ruby脚本(redis-trib.rb)
cd /usr/local/redis-3.0.0/src
cp redis-trib.rb /usr/local/redis-cluster/
4.搭建ruby脚本运行环境
yum install ruby
yum install rubygems
5.添加安装一个第三方库(redis-3.0.0.gem用来安装redis-3.0.0源码)
gem install redis-3.0.0(redis-3.0.0.gem与redis-3.0.0在同一目录)
6.使用ruby脚本搭建集群(--replicas 1表示每个节点有一个备份机)
cd /usr/local/redis-cluster/
./redis-trib.rb create --replicas 1 192.168.13.129:7001 192.168.13.129:7002 192.168.13.129:7003 192.168.13.129:7004192.168.13.129:7005 192.168.13.129:7006
7.使用redis-cli连接集群
实际中不同节点在不同服务器上,只需在任意一台服务器连接即可,各服务器关闭防火
墙,不然会卡主出错。(redis0x/redis-cli -h xxx -p 7004 -c)
cd /usr/local/redis-cluster/
redis01/redis-cli -p 7004 -c (01和7004任意,-c表示连接的是集群)
8.创建关闭集群的脚本
cd /usr/local/redis-cluster
vi shutdown-all.sh(任意一台服务器就可关闭所有)
----------------------------------------------
redis01/redis-cli -p 7001 shutdown
redis01/redis-cli -p 7002 shutdown
redis01/redis-cli -p 7003 shutdown
redis01/redis-cli -p 7004 shutdown
redis01/redis-cli -p 7005 shutdown
redis01/redis-cli -p 7006 shutdown
----------------------------------------------
chmod u+x shutdown-all.sh(授权)
四、Redis开机启动脚本
1、脚本:名字,redis
vi /etc/init.d/redis
#!/bin/sh #chkconfig: 2345 80 90 #description:auto_run PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/bin/redis-server REDIS_CLI=/usr/local/bin/redis-cli PIDFILE=/var/run/redis.pid CONF="/usr/local/redis-3.0.0/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 if [ "$?"="0" ] then echo "Redis is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $REDIS_CLI -p $REDISPORT SHUTDOWN while [ -x ${PIDFILE} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1 esac |
chmod 755 /etc/init.d/redis
3、开机启动
chkconfig redis on
4、启动,停止redis
1. service redis start #或者 /etc/init.d/redis start
2. service redis stop #或者 /etc/init.d/redis stop