Redis 部署

Posted 心静`问己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 部署相关的知识,希望对你有一定的参考价值。

  Redis是一个和Memcached类似的键值对缓存系统,但是Redis相比Memcached主要有两大优势:1、Redis支持持久化,也就是说Redis在系统重启或者内存溢出后,重启Redis系统之前的热门数据还是会被加载到内存中。2、Redis比Memcached更容易做集群化系统,最简单的主从Redis支持两种模式,①、Redis支持系统直接启动主从模式slaveof(只是该模式在Master故障后,Slave不能接替Master写入数据),②Redis支持哨兵模式,该模式是在Master/Slave模式的优化,支持Master故障后,自动在Slave选举一台升级为Master接替故障的Master,同时在生产环境中也经常使用该模式配置Keepalived(既:Redis哨兵+Keepalived)以实现HA。而Memcached的集群环境一般采用环形模式,实现比较复杂同时每增加或减少一台服务器都会对其他服务器的缓存内容有所影响。

  本文是个人编写Redis系列的开篇,主要讲解Redis的安装部署。

  Redis部署安装非常简单,部署安装模式也非常多,例如:yum安装、rpm安装、源码安装等等,可以根据个人爱好习惯进行安装,我主要以源码安装为主。本次安装的Redis版本为:3.2.8。下载地址:http://download.redis.io/releases/redis-3.2.8.tar.gz 。服务器版本为:CentOS 6.5 x64

  Redis的源码安装非常简单,如下:

wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar xf redis-3.2.8.tar.gz 
cd redis-3.2.8
#编译与安装
make && make install

 

  接下来配置Redis基础部分,如下:

#首先创建Redis目录,方便后期维护
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc

#拷贝Redis命令
cp /usr/local/bin/redis-* /usr/local/redis/bin/

#拷贝Redis配置文件
#注意:在Redis源码编译安装完成后,在源码目录有两个配置文件后期会使用到,redis.conf和sentinel.conf
cp redis.conf /usr/local/redis/etc

 

  然后,简单配置Redis的配置文件(Redis配置文件详细说明后面会专门写文章说明),如下:

#该说明几个需要修改的参数,并没有列出所有参数,Redis配置文件详解后期专门写文章进行讲解
vim /usr/local/redis/etc/redis.conf
#Redis监听地址,默认是127.0.0.1
bind 0.0.0.0
#Redis默认端口,默认监听地址与端口根据实际情况而定是否需要修改
port 6379
#该参数是指Redis是否在后台以守护进程运行,默认是no,需要改为yes
daemonize yes
#Redis启动后默认的PID文件存放位置,可以自定义
pidfile /var/run/redis_6379.pid
#Redis启动后默认的日志文件存放文章
logfile "/app/redis/logs/redis.log"
#Redis默认启动多少库
databases 16
#下列三个参数是Redis持久化触发条件
save 900 1
save 300 10
save 60 10000
#Redis持久化存放数据的文件文件名
dbfilename dump.rdb
#Redis持久化数据存放目录
dir /app/redis/data

 

  最后,增加一个Redis的系统服务。

vim /etc/init.d/redis
#!/bin/sh
#
#chkconfig: 2345 90 10
#Description: This is Redis server file
#

#Source functions libry
. /etc/init.d/functions

#Server name
SNAME=redis-server

#Server directory
PROG=/usr/local/redis/bin/$SNAME

#Server config directory
CFG=/usr/local/redis/etc/redis.conf

start() {
  if [ -f /var/lock/subsys/$SNAME ];then
    echo "$SNAME is already started!"
    exit 0;
  else
    echo "Starting $SNAME ....."
    $PROG $CFG
   if [ "$?" -eq "0" ];then
    touch /var/lock/subsys/$SNAME
    exit 0;
   fi
    exit 0;
  fi
}

stop() {
  echo "Stoping $SNAME ......"
  killall $SNAME
  rm -rf /var/lock/subsys/$SNAME
}

case "$1" in
start)
  start
  ;;
stop)
  stop
  ;;
restart)
  stop
  sleep 3
  start
  ;;
*)
  echo $"Usage: $0 {start|stop|restart}"  
  exit 1  
esac

#增加服务
chmod 777 /etc/init.d/redis 
chkconfig --add redis
chkconfig --list redis
redis              0:off    1:off    2:on    3:on    4:on    5:on    6:off

 

  现在Redis的基础安装已经完成了,下面测试一下,如下:

#启动Redis系统服务
service redis start
Starting redis-server .....

ps aux |grep redis
root      4045  0.0  0.3 133540  7524 ?        Ssl  16:40   0:00 /usr/local/redis/bin/redis-server 0.0.0.0:6379                   
root      4050  0.0  0.0 103260   876 pts/0    S+   16:40   0:00 grep redis

#使用Redis客户端命令连接测试
/usr/local/redis/bin/redis-cli 
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> set name ray
OK
127.0.0.1:6379> KEYS *
1) "name"
127.0.0.1:6379> 

 

 

  至此,Redis基础安装已完成,下面一章将讲解Redis配置密码访问,并陆续讲解Redis的配置文件详解,Redis哨兵配置,Redis哨兵+Keepalived等方面。

 

以上是关于Redis 部署的主要内容,如果未能解决你的问题,请参考以下文章

jedis连接redis

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题

SpringBoot使用SchedulingConfigurer实现多个定时任务多机器部署问题

Linux——在Linux系统上打包和部署springboot+vue项目,nginx+mysql+redis+minio

Linux——在Linux系统上打包和部署springboot+vue项目,nginx+mysql+redis+minio

laravel项目利用twemproxy部署redis集群的完整步骤