Linux-centos下安装redis及集群

时间:2022-06-21 01:22:46

一、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

    Linux-centos下安装redis及集群

   启动后看到如上欢迎页面,但此窗口不能关闭,窗口关闭就认为redis也关闭了(类似Tomcat通过bin下的startup.bat的方式)
解决方案:可以通过修改配置文件 配置redis后台启动,即服务器启动了但不会穿件控制台窗口
将redis.conf文件中的daemonize从false修改成true表示后台启动
使用命令查看6379端口是否启动ps -ef | grep redis

    Linux-centos下安装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  
2、把上述代码存为redis,放到/etc/init.d/下面
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