下载Redis

下载网址

http://www.redis.cn/download.html

图形界面下载网址

https://github.com/cc20110101/RedisView/releases


  • Redis需要gcc环境(如果已经有该环境跳过此步骤)

    yum install gcc-c++

安装Redis

  • 在/usr/local下创建redis文件夹
mkdir redis
cd redis
  • 下载、解压、编译Redis:
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
# 指定内存池类型,提高性能
make MALLOC=libc
cd src
make PREFIX=/usr/local/redis install
  • 拷贝redis.conf配置文件到特定目录;
mkdir -p /usr/local/redis/6379
cp redis.conf /usr/local/redis/6379/
  • 添加redis到命令到全局变量,方便在任何目录执行;
vi /etc/profile
# 在最后行添加:
export PATH="$PATH:/usr/local/redis/bin"
  • 将 redis-trib.rb 复制到 /usr/local/bin 目录下
cd src
cp redis-trib.rb /usr/local/redis/bin/
  • 对redis.conf文件修改如下
#设置占用最大内存 数字为bytes 该值为0.75G
maxmemory 751619276
# redis 内存回收机制 默认noeviction:拒绝更多内存,当前为回收已经过期的key,并且优先回收存活时间(TTL)较短的键
maxmemory-policy volatile-ttl
# 开启AOF持久化
appendonly yes
# AOF追写策略
appendfsync everyse
#是否同步重写问件 yes性能更好,有概率丢失文件
no-appendfsync-on-rewrite no
# 设置AOF增长比例和最小触发文件大小,即至(64*100% + 64)mb时触发重写文件
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 注释掉RDB持久化参数
#save 900 1
#save 300 10
#save 60 10000
# 删除目录下的dump.rdb
rm -rf dump.rdb
# 手动重写AOF
执行 bgrewriteaof
  • 启动验证redis
cd /usr/local/redis/
bin/redis-server 6379/redis.conf
  • 性能测试
# 启动5个连接,发起100000个请求,每个请求的大小为10bytes
bin/redis-benchmark -t get -h localhost -p 6379 -c 5 -n 100000 -d 10
  • 设置开机自启
vi /etc/init.d/redis
# 填入以下内容 #!/bin/sh
# chkconfig: 2345 56 26
# description: Redis Service ### BEGIN INIT INFO
# Provides: Redis
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts Redis
# Description: starts the BT-Web
### END INIT INFO # Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
# redis端口号
REDISPORT=6379
# redis-server所在目录的绝对路径
EXEC=/usr/local/redis/bin/redis-server
# redis-cli所在目录的绝对路径
REDIS_CLI=/usr/local/redis/bin/redis-cli PIDFILE=/var/run/redis.pid
# redis.conf所在目录的绝对路径
CONF="/usr/local/redis/6379/redis.conf"
AUTH="nginx" 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 exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT -a $AUTH SHUTDOWN
sleep 2
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 redis
chkconfig redis on
service redis start
  • 在redis文件夹下创建redis-cluster,并且在redis-cluster文件夹下创建7004 7005 7006文件夹

  • 将redis5.0.4的文件夹下redis.conf文件复制到刚刚创建的7004 7005 7006文件夹下
cp redis.conf /usr/local/redis/redis-cluster/7004
cp redis.conf /usr/local/redis/redis-cluster/7005
cp redis.conf /usr/local/redis/redis-cluster/7006
  • 修改刚刚复制的三个配置文件redis.conf
port 7000 //端口7000,7002,7003
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002 把注释#去掉
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置 把注释#去掉
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
  • 在/usr/local/redis/bin目录下启动各个节点
./redis-server /usr/local/redis/redis-cluster/7004/redis.conf
./redis-server /usr/local/redis/redis-cluster/7005/redis.conf
./redis-server /usr/local/redis/redis-cluster/7006/redis.conf
  • 检查redis启动情况
ps -ef | grep redis //查看redis启动情况
netstat -tnlp | grep redis//查看redis端口开启情况


另一个服务器也执行相同操作,分别创建7001 7002 7003节点

创建集群

./redis-cli --cluster create --cluster-replicas 1 10.104.132.37:7001 10.104.132.37:7002 10.104.132.37:7003 10.104.132.52:7004 10.104.132.52:7005 10.104.132.52:7006

  • 其中,前三个 ip:port 为第一台机器的节点,剩下三个为第二台机器



运行界面如上,则表示配置成功

验证集群

  • 在第一台机器上连接集群的7001端口的节点,在另外一台连接7005节点,连接方式为
./redis-cli -h 10.104.132.37 -c -p 7001
./redis-cli -h 10.104.132.52 -c -p 7005



Redis其他操作命令

关闭所有节点

pkill -9 redis

Linux 部署redis集群的更多相关文章

  1. Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)

    一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...

  2. Redis笔记 -- 在 Centos7.4单机中部署Redis集群(二)

    0x00--背景和目的 在单台PC服务器上部署Redis集群,通过不同的TCP端口启动多实例,模拟多台独立PC组成集群. 0x01--环境描述: Centos版本:CentOS Linux relea ...

  3. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

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

    Twemproxy是一个代理服务器,可以通过它减少Memcached或Redis服务器所打开的连接数.下面这篇文章主要给大家介绍了关于laravel项目利用twemproxy部署redis集群的相关资 ...

  5. Centos6.6部署Redis集群

    Centos6.6部署Redis集群 1环境准备 1环境安装redis 1安装ruby 2配置redis主从环境 3部署redis sentinel服务器 5集群使用 13当前集群环境说明 13测试功 ...

  6. Linux配置Redis集群 和 缓存介绍。

    // 一.什么是缓存? mybatis一级缓存和二级缓存 mybatis的一级缓存存在哪? SqlSession,就不会再走数据库 什么情况下一级缓存会失效? 当被更新,删除的时候sqlsession ...

  7. Centos7部署Redis集群

    Redis简介 Redis(Remote Dictionary Server)是完全开源的.遵守BSD协议的.高性能的Key-Value数据库. Redis与其他Key-Value缓存产品有一下三个特 ...

  8. 在 Kubernetes 中部署 Redis 集群

    在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需 ...

  9. linux系统——Redis集群搭建(主从+哨兵模式)

    趁着这几天刚好有点空,就来写一下redis的集群搭建,我跟大家先说明,本文的redis集群因为linux服务器只是阿里云一台服务器,所以集群是redis启动不同端口,但是也能达到集群的要求.其实不同服 ...

随机推荐

  1. IDEA新建servlet时出现的错误

    未注入Tomcat里lib文件下的jar 这样即可

  2. sql server2017开启远程连接

    1.安装完SQL server2017之后,选择SQL 身份验证登录,可以先用windows身份验证登录把密码更改好了,然后服务器右键重新启动 ,再断开连接 ,选择SQL身份验证登录验证,关闭SQL ...

  3. RTP中的H264的SVC相关信息

    概览 本文简单的介绍了rtp中的h264的svc相关信息 h264的svc相关格式信息 从RTP Payload Format for H.264 Video可以看见264在rtp的传输过程中,在rt ...

  4. Bandizip解压压缩软件

    上次重装系统以后,特别注意安装软件,在这里提一些比较好的 解压软件:Bandizip 这个是一个免费轻量级的软件,压缩解压速度快,没什么广告,推荐大家在官方下载 Bandizip下载网址 点击下载安装 ...

  5. [译]Vulkan教程(29)组合的Image采样器

    [译]Vulkan教程(29)组合的Image采样器 Combined image sampler 组合的image采样器 Introduction 入门 We looked at descripto ...

  6. Laravel-权限系统

    总结Auth中间件用于定义未登录用户只能操作哪些权限policy授权策略定义了当前用户实例与进行授权的用户是否匹配,一致才能进一步操作,否则返回403禁止访问异常场景:用户登录 Auth步骤 找到需要 ...

  7. Codeforces 1238 D. AB-string

    思维题 这次cf思维题好多啊 定义了good string 指一个串,其中每一个字符都属于一个长度>=2 的回文串的一部分.叫你求一个串中有几个good substring. 显然ab串 goo ...

  8. java基础(3):变量、运算符

    1. 变量 1.1 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为重要的知识点! 什么是变量?变量是一个内存中的小盒子(小容器), ...

  9. 原生js对cookie的增删改查

    一.增 document.cookie = cname + "=" + cvalue + ";expires=" + expires + ";path ...

  10. python爬虫网页解析之lxml模块

    08.06自我总结 python爬虫网页解析之lxml模块 一.模块的安装 windows系统下的安装: 方法一:pip3 install lxml 方法二:下载对应系统版本的wheel文件:http ...