redis集群搭建及配置

合集下载

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤--(centos5.8 X64系统)版本历史一: redis cluster介绍篇1:redis cluster的现状目前redis支持的cluster特性(已亲测):1):节点自动发现2):slave->master 选举,集群容错3):Hot resharding:在线分片4):进群管理:cluster xxx5):基于配置(nodes-port.conf)的集群管理6):ASK 转向/MOVED 转向机制.2:redis cluster 架构1)redis-cluster架构图架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value2) redis-cluster选举:容错(1)领着选举过程是集群中所有master参与,如果半数以上master节点与master 节点通信超过(cluster-node-timeout),认为当前master节点挂掉.(2):什么时候整个集群不可用(cluster_state:fail),当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.二.Redis集群安装篇(centos5.8 X64系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:70051:下载redis。

基于Redis6.2.6版本部署Redis

基于Redis6.2.6版本部署Redis

基于Redis6.2.6版本部署Redis Cluster 集群的问题⽬录1.Redis6.2.6简介以及环境规划2.⼆进制安装Redis 程序2.1.⼆进制安装redis6.2.62.2.创建Reids Cluster 集群⽬录3.配置Redis Cluster 三主三从交叉复制集群3.1.准备六个节点的redis 配置⽂件3.2.将六个节点全部启动3.3.配置集群节点之间相互发现3.4.为集群中的充当Master 的节点分配槽位3.5.配置三主三从交叉复制模式4.快速搭建Redis Cluster 集群1.Redis6.2.6简介以及环境规划在Redis6.x 版本中主要增加了多线程的新特性,多线性对于⾼并发场景是⾮常有必要的。

多线程IO 重新设计了客户端缓存功能RESP3协议⽀持SSLACL 权限控制提升了RDB ⽇志加载速度发布官⽅的Redis 集群代理模块 Redis Cluster proxyRedis Cluster 集群原理可以查看之前发布的⽂章。

IP 主机名端⼝号节点192.168.20.10redis-cluster 6701master192.168.20.10redis-cluster 6702slave—>6705的master192.168.20.10redis-cluster 6703master192.168.20.10redis-cluster 6704slave—>6701的master192.168.20.10redis-cluster 6705master192.168.20.10redis-cluster 6706slave—>6703的master Reids 集群采⽤三主三从交叉复制架构,由于服务器数量有限,在⼀台机器中模拟出集群的效果,在实际⽣产环境中,需要准备三台机器,每台机器中分别部署两台Redis 节点,⼀主⼀从,交叉备份。

redis集群 配置参数

redis集群 配置参数

redis集群配置参数
在Redis集群中,需要配置以下参数:
1. cluster-enabled:设置为yes来启用集群模式。

2. cluster-config-file:指定集群配置文件的路径。

3. cluster-node-timeout:指定集群节点之间的超时时间。

4. cluster-announce-ip:指定集群节点的IP地址。

5. cluster-announce-port:指定集群节点的端口号。

6. cluster-announce-bus-port:指定集群节点之间通信的端口号。

7. cluster-require-full-coverage:设置为yes来要求所有槽位都要有节点才能正常工作。

8. cluster-migration-barrier:设置为yes来阻止在槽迁移期间的对数据的写入操作。

这些参数可以在Redis的配置文件redis.conf中进行设置。

在配置文件中找到对应的参数进行修改并重启Redis服务即可生效。

【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】

【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】

【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】⼀.搭建redis单机本⽂搭建redis3.0版本,3.0主要增加了redis cluster集群功能。

2.解压源码:tar -zxvf redis-3.0.0.tar.gz3.编译源码:cd /usr/local/redis-3.0.0make4.安装到指定⽬录: cd /usr/local/redis-3.0.0make PREFIX=/usr/local/redis install5.进⼊源码⽬录,将redis.conf拷贝到安装路径:cd /usr/local/redismkdir confcp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin6.修改redis.conf配置⽂件,以后端模式启动:daemonize yes7.启动redis:cd /usr/local/redis ./bin/redis-server ./redis.conf //在何处启动的server,⼀些配置⽂件就默认在该处⽣成(如果配置的相对路径)8.redis.conf配置⽂件主要配置:port 7001 //监听的端⼝# bind 127.0.0.1 //绑定ip,只允许该ip访问,不填默认为*,表⽰允许所有ip访问requirepass "你的密码" //开启密码loglevel debug //⽇志级别,开发模式尽量选⽤debuglogfile "redis.log" //⽇志⽂件路径,此处使⽤相对路径,将⽣成到/usr/local/redis下maxmemory 100000000 //允许最⼤内存占⽤100mappendonly yes //启⽤aofauto-aof-rewrite-percentage 80 //部署在同⼀机器的多个redis实例,建议把auto-aof-rewrite错开(可分别写80-100不等),防⽌瞬间fork,所有redis进程做rewrite,占⽤⼤量内存9.jedis连接redis单机:1<dependency>2<groupId>redis.clients</groupId>3<artifactId>jedis</artifactId>4<version>2.7.0</version>5</dependency>连接池整合spring:<!-- redis连接池(单例) --><bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close"><constructor-arg name="poolConfig" ref="jedisPoolConfig"/><constructor-arg name="host" value="${redis.host}"/><constructor-arg name="port" value="${redis.port}"/><constructor-arg name="timeout" value="${redis.timeout}"/><constructor-arg name="password" value="${redis.pass}"/></bean><!-- 连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最⼤连接数 --><property name="maxTotal" value="150"/><!-- 最⼤空闲连接数 --><property name="maxIdle" value="30"/><!-- 最⼩空闲连接数 --><property name="minIdle" value="10"/><!-- 获取连接时的最⼤等待毫秒数,⼩于零:阻塞不确定的时间,默认-1 --><property name="maxWaitMillis" value="3000"/><!-- 每次释放连接的最⼤数⽬ --><property name="numTestsPerEvictionRun" value="100"/><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="3000"/><!-- 连接最⼩空闲时间 --><property name="minEvictableIdleTimeMillis" value="1800000"/><!-- 连接空闲多久后释放, 当空闲时间>该值且空闲连接>最⼤空闲连接数时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="10000"/><!-- 在获取连接的时候检查有效性, 默认false --><property name="testOnBorrow" value="true"/><!-- 在空闲时检查有效性, 默认false --><property name="testWhileIdle" value="true"/><!-- 在归还给pool时,是否提前进⾏validate操作 --><property name="testOnReturn" value="true"/><!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --><property name="blockWhenExhausted" value="false"/></bean>1 @RunWith(SpringJUnit4ClassRunner.class) // 指定测试⽤例的运⾏器这⾥是指定了Junit42 @ContextConfiguration("classpath:spring/application*.xml")3public class RedisTest {4 @Autowired5private JedisPool pool;6 @Test7public void testJedisPool() {8 Jedis jedis = null;9 String name = null;10try {11 jedis = pool.getResource();12 jedis.set("testName", "RCL");13 name = jedis.get("testName");14 } catch (Exception ex) {15 ex.printStackTrace();16 } finally {17if (jedis != null) {18// 返回给池19 jedis.close();20 }21 Assert.assertEquals("RCL", name);22 }23 }10.如果连接不上,可查看是否防⽕墙没有将redis端⼝开放:/etc/sysconfig/iptables添加:-A INPUT -p tcp -m state --state NEW -m tcp --dport 7001 -j ACCEPT //7001即redis端⼝重启防⽕墙⼆、搭建redis集群1.安装ruby环境集群管理⼯具redis-trib.rb依赖ruby环境(1)安装ruby:yum install ruby yum install rubygems(2)安装ruby和redis的接⼝程序:拷贝redis-3.0.0.gem⾄/usr/local。

Redis集群Redis-cluster搭建及故障、性能测试

Redis集群Redis-cluster搭建及故障、性能测试

Redis集群Redis-cluster搭建及故障、性能测试⼀、Redis集群部署三台物理机:172.20.0.17、172.20.0.18、172.20.0.19⼆、安装Redis下载安装redis压缩包解压压缩包,进⼊redis-5.0.2⽂件夹,运⾏命令./make install安装redismv redis-5.0.2 /usr/local/redis/三、修改配置⽂件node1--17服务器:1、创建redis_cluster/700X的⽬录mkdir -p /usr/local/redis/redis_cluster/7001mkdir -p /usr/local/redis/redis_cluster/70022、修改Redis.conf的端⼝cp redis.conf /usr/local/redis/redis_cluster/7001修改端⼝为7001cp redis.conf /usr/local/redis/redis_cluster/7002修改端⼝为70023、同时将修改后的Redis.conf复制到另外两个节点(18、19)4、将redis-server复制到节点⽬录下,⽅便操作cp /usr/local/bin/redis-server /usr/local/redis/redis-5.0.2/redis_cluster/7001/5、开启redis-cluster配置,配置做以下改造#配置yes开启redis-clustercluster-enabled yes#配置节点之间超时时间cluster-node-timeout 15000#这个配置很重要,cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败,最好按主机+端⼝命名cluster-config-file nodes-17-7001.conf四、启动各节点17、18、19Rediscd /usr/local/redis/redis-5.0.2/redis_cluster/7001./redis-server redis.confcd /usr/local/redis/redis-5.0.2/redis_cluster/7002./redis-server redis.conf五、创建集群命令cd /usr/local/bin./redis-cli --cluster create 172.20.0.17:7001 172.20.0.18:7001 172.20.0.19:7001 172.20.0.17:7002 172.20.0.18:7002 172.20.0.19:7002 --cluster-replicas 1(replicas1 表⽰我们希望为集群中的每个主节点创建⼀个从节点。

thinkphp rediscluster 使用方式

thinkphp rediscluster 使用方式

thinkphp rediscluster 使用方式ThinkPHP 是一款流行的PHP开发框架,它为开发者提供了丰富的功能和便利的开发环境。

其中,RedisCluster 是一个基于Redis 的分布式集群解决方案,可以帮助我们搭建高性能和高可用性的Redis 集群环境。

本文将详细介绍ThinkPHP 中如何使用RedisCluster,包括安装、配置和使用详解等内容。

第一部分:安装RedisCluster在开始使用RedisCluster 之前,我们需要确保RedisCluster 已经安装在开发环境中。

以下是安装RedisCluster 的步骤:1. 下载RedisCluster 扩展:你可以在GitHub 上找到RedisCluster 的源码,并从中获取最新的扩展包。

2. 解压扩展包:将下载的扩展包解压到你的本地文件系统中。

3. 编译扩展包:进入解压后的目录,并执行以下命令进行编译:phpize./configuremake && make install4. 修改php.ini 配置文件:找到你的php.ini 配置文件,并添加以下内容:extension=rediscluster.so5. 重新启动PHP:重启你的Web 服务器或PHP-FPM 进程,以使配置生效。

安装完成后,你可以通过运行`php -m grep rediscluster` 命令来验证RedisCluster 是否已经成功安装。

第二部分:配置RedisCluster在使用ThinkPHP 中的RedisCluster 功能之前,我们需要进行相应的配置。

以下是配置RedisCluster 的步骤:1. 打开ThinkPHP 的配置文件:在你的项目根目录下,找到`config` 目录,并打开`cache.php` 配置文件。

2. 配置RedisCluster 参数:在`cache.php` 文件中,搜索`redis` 配置项,并根据下面的示例进行修改:php'redis' => ['type' => 'redis','host' => '127.0.0.1','port' => 6379,'password' => '','timeout' => 3600,],- `type`:指定使用RedisCluster。

linux之redis6.2环境安装与配置

linux之redis6.2环境安装与配置

linux之redis6.2环境安装与配置1. redis 6.2 系列1.1 安装进⼊,下载redis-6.2.4.tar.gz将下载好的 redis ⽂件压缩包,上传到 linux 系统中# 通过终端命令解压[root@localhost local]# tar -zxvf redis-6.2.4.tar.gz# 重命令 redis,改不改问题不⼤,个⼈习惯[root@hua local]# mv redis-6.2.4 redis# 注意 redis C语⾔开发安装需要 gcc 环境,才能正常运⾏[root@localhost local]# yum -y install gcc# 进⼊ redis 中,执⾏命令[root@localhost local]# cd redis[root@localhost redis]# make# 在进⼊到 src 中[root@localhost redis]# cd src[root@localhost src]# make install# 开启 redis 服务[root@localhost src]# ./redis-server ../redis.conf注意:这样开启服务,会有问题,它以前台模式运⾏服务,这样还需要另外⼀台连接服务器来对 redis 操作# 修改 redis.conf 配置⽂件[root@localhost src]# vim /usr/local/redis/redis.conf保存并开启服务测试# 进⼊到 redis 中的 src ⾥,开启服务时,带上 redis 配置⽂件[root@localhost src]# ./redis-server ../redis.conf# 连接 redis 客户端,进⾏操作,显⽰地址和端⼝表⽰ redis 连接成功,可以使⽤[root@localhost src]# ./redis-cli127.0.0.1:6379>远程连接# 综上,能够正常开启和连接服务,但是在windows中使⽤ RDM 或者 IDEA,就⽆法连接成功# 原因是没有设置远程连接# 修改 redis 配置⽂件[root@localhost src]# vim /usr/local/redis/redis.conf# 重启 redis 服务[root@localhost src]# ./redis-server ../redis.conf防⽕墙# 综上得到配置好还是远程连接不上,最后排查防⽕墙[root@localhost local]# systemctl status firewalld.service# 关闭防⽕墙[root@localhost local]# systemctl stop firewalld.service⾃启动# 编写⾃启动脚本# 注意在 /etc/init.d 中编写 redis ⽂件,/etc/init.d 就是开机初始化⽂件夹[root@localhost src]# vi /etc/init.d/redis配置信息#!/bin/sh# chkconfig: 2345 10 90# description: Start and Stop redis# 到本机安装redis后,存放redis命令的⽬录PATH=/usr/local/bin:/usr/local/redis/src# redis的默认端⼝,要和下⽂中的redis.conf中⼀致REDISPORT=6379# redis服务端的命令EXEC=/usr/local/redis/src/redis-server# redis客户端的命令这两个⼀般都在 PATH⽬录下REDIS_CLI=/usr/local/redis/src/redis-cli# reids的进程⽂件⽣成的位置PIDFILE=/var/run/redis.pid# redis的配置⽂件所在的⽬录CONF="/usr/local/redis/redis.conf"case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed." elseecho "Starting Redis server..."$EXEC $CONFfiif [ "$?"="0" ]thenecho "Redis is running..."fi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE exists, process is not running."elsePID=$(cat $PIDFILE)echo "Stopping..."$REDIS_CLI -p $REDISPORT SHUTDOWNsleep 2while [ -x $PIDFILE ]doecho "Waiting for Redis to shutdown..."sleep 1doneecho "Redis stopped"fi;;restart|force-reload)${0} stop${0} start;;*)echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2 exit 1esac# 保存后,进⼊到 /etc/init.d 中[root@localhost src]# cd /etc/init.d# 查看⽂件权限[root@localhost init.d]# ll-rw-r--r--. 1 root root 18281 May 22 2020 functions-rwxr-xr-x. 1 root root 10613 Jul 9 19:32 mysql-rwxr-xr-x. 1 root root 4569 May 22 2020 netconsole-rwxr-xr-x. 1 root root 7928 May 22 2020 network-rw-r--r--. 1 root root 1160 Oct 2 2020 README-rw-r--r--. 1 root root 1898 Jul 15 16:20 redis# 修改 redis ⽂件权限[root@localhost init.d]# chmod 775 redis# 再次查看 redis 权限-rw-r--r--. 1 root root 18281 May 22 2020 functions-rwxr-xr-x. 1 root root 10613 Jul 9 19:32 mysql-rwxr-xr-x. 1 root root 4569 May 22 2020 netconsole-rwxr-xr-x. 1 root root 7928 May 22 2020 network-rw-r--r--. 1 root root 1160 Oct 2 2020 README-rwxr-xr-x. 1 root root 1898 Jul 15 16:20 redis# 测试是否有效[root@localhost init.d]# /etc/init.d/redis startStarting Redis server...Redis is running...# 最后添加⾃启[root@localhost init.d]# chkconfig --add redis# 开启⾃启[root@localhost init.d]# chkconfig redis on# 查看服务[root@localhost init.d]# chkconfig --list安装完毕!1.2 卸载查看是否安装了 redis 数据库# 查看是否存在 redis[root@localhost local]# rpm -qa | grep redis[root@localhost local]# find / -name redis/etc/selinux/targeted/active/modules/100/redis/usr/local/redis# 查看服务是否开启状态[root@localhost local]# ps -ef | grep 6379root 2854 1 0 14:31 ? 00:00:01 ./redis-server 0.0.0.0:6379root 6970 1465 0 14:41 pts/0 00:00:00 grep --color=auto 6379# 存在服务进程,将其杀死[root@localhost local]# kill -9 2854# 卸载 redis 服务[root@localhost local]# rm -rf /etc/selinux/targeted/active/modules/100/redis [root@localhost local]# rm -rf /usr/local/redis卸载完毕!。

Redis集群使用指南

Redis集群使用指南

Redis集群使用指南一、Redis集群简介Redis(Remote Dictionary Server)是一个开源的基于内存的键值对存储系统,经常用来作为缓存、消息队列和数据库。

在实际使用过程中,Redis可能会出现性能瓶颈和单点故障。

为了解决这些问题,Redis提供了集群模式。

Redis集群是对多个Redis节点进行逻辑分区和复制,从而实现高可用、高性能和可伸缩性。

Redis集群能够自动进行故障转移和重新分配,可以提供更好的可靠性和吞吐量。

二、Redis集群的工作原理Redis集群采用哈希槽(Hash Slot)的方式来实现数据的分片和复制。

一个Redis集群可以包含多个Redis节点,每个节点管理一部分哈希槽。

当客户端需要对某个键进行操作时,Redis首先计算该键对应的哈希值,然后将其分配到某个哈希槽中。

Redis集群根据哈希槽的分配情况,将该键的操作转发给相应的Redis节点进行处理。

如果某个节点出现故障,Redis集群会自动将该节点管理的哈希槽重新分配给其他节点。

Redis集群采用主从复制的方式来实现数据的持久化和高可用。

每个主节点可以有多个从节点,主节点负责处理读写请求,同时将数据复制到从节点。

如果主节点出现故障,其中的一个从节点会被自动选举为新的主节点,继续处理客户端请求。

三、搭建Redis集群的步骤1、安装Redis节点在Linux系统上安装Redis比较简单,可以使用以下命令:sudo apt-get updatesudo apt-get install redis-server安装完毕后,可以通过以下命令启动Redis服务:sudo service redis-server start2、配置Redis节点每个Redis节点都需要进行一些配置,以便加入到Redis集群中。

可以通过以下命令进入Redis配置文件:sudo vim /etc/redis/redis.conf需要修改的配置项有以下几个:cluster-enabled yes:启用Redis集群模式。

redis集群搭建+lua脚本的使用

redis集群搭建+lua脚本的使用

redis集群搭建+lua脚本的使⽤详细参考这篇⽂章(windows)⼀、使⽤JAVA代码操作redis集群public static void main(String[] args) throws Exception {JedisPoolConfig poolConfig = new JedisPoolConfig();// 最⼤连接数poolConfig.setMaxTotal(1);// 最⼤空闲数poolConfig.setMaxIdle(1);// 最⼤允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:// Could not get a resource from the poolpoolConfig.setMaxWaitMillis(1000);Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();nodes.add(new HostAndPort("127.0.0.1", 6379));nodes.add(new HostAndPort("127.0.0.1", 6380));nodes.add(new HostAndPort("127.0.0.1", 6381));nodes.add(new HostAndPort("127.0.0.1", 6382));nodes.add(new HostAndPort("127.0.0.1", 6383));nodes.add(new HostAndPort("127.0.0.1", 6384));JedisCluster cluster = new JedisCluster(nodes, poolConfig);String name = cluster.get("name");System.out.println(name);cluster.set("age", "18");System.out.println(cluster.get("age"));try {cluster.close();} catch (IOException e) {e.printStackTrace();}}⼆、使⽤JAVA代码操作lua脚本 1、编写lua脚本redis.call(\"SET\",KEYS[1],ARGV[1]);\n"+ "redis.call(\"SET\",KEYS[2],ARGV[2]); 2、java代码public static void main(String[] args) throws Exception {JedisPoolConfig poolConfig = new JedisPoolConfig();// 最⼤连接数poolConfig.setMaxTotal(1);// 最⼤空闲数poolConfig.setMaxIdle(1);// 最⼤允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:// Could not get a resource from the poolpoolConfig.setMaxWaitMillis(1000);Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();nodes.add(new HostAndPort("127.0.0.1", 6379));nodes.add(new HostAndPort("127.0.0.1", 6380));nodes.add(new HostAndPort("127.0.0.1", 6381));nodes.add(new HostAndPort("127.0.0.1", 6382));nodes.add(new HostAndPort("127.0.0.1", 6383));nodes.add(new HostAndPort("127.0.0.1", 6384));JedisCluster cluster = new JedisCluster(nodes, poolConfig);String lua = "redis.call(\"SET\",KEYS[1],ARGV[1]);\n"+ "redis.call(\"SET\",KEYS[2],ARGV[2]);";String[] p = {"{a}a1","{a}a2","a","b"};Object eval = cluster.eval(lua, 2, p);try {cluster.close();} catch (IOException e) {e.printStackTrace();}需要注意的时,redis集群执⾏lua操作的时候,要求key值必须要在同⼀个solt上⾯,为了达到这个⽬的,可以在key值中增加“{xx}”内容,这样redis在计算hash槽的时候会按{}内的内容计算hash值;。

Redis配置详解

Redis配置详解

Redis配置详解我们说 Redis 相对于 Memcache 等其他的缓存产品,有⼀个⽐较明显的优势就是 Redis 不仅仅⽀持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

本篇博客我们就将介绍这些数据类型的详细使⽤以及顺带介绍Redis系统的相关命令⽤法。

注意:Redis的命令不区分⼤⼩写,但是key 严格区分⼤⼩写0、写在前⾯ 下⾯介绍的Redis命令有很多,如果你想通过死记硬背来记住这些命令⼏乎不可能,但是如果理解了Redis的⼀些机制,这些命令其实是由很强的通⽤性的,通过理解来记忆是最好的。

另外,每种数据类型都有其适合的使⽤场景,我也会在⽂中给与说明,如果滥⽤,反⽽会适得其反。

1、string 数据类型 string 是Redis的最基本的数据类型,可以理解为与 Memcached ⼀模⼀样的类型,⼀个key 对应⼀个 value。

string 类型是⼆进制安全的,意思是 Redis 的 string 可以包含任何数据,⽐如图⽚或者序列化的对象,⼀个 redis 中字符串 value 最多可以是 512M。

①、相关命令介绍 string 数据类型在 Redis 中的相关命令: PS: ①、上⾯的 ttl 命令是返回 key 的剩余过期时间,单位为秒。

②、mset和mget这种批量处理命令,能够极⼤的提⾼操作效率。

因为⼀次命令执⾏所需要的时间=1次⽹络传输时间+1次命令执⾏时间,n个命令耗时=n次⽹络传输时间+n次命令执⾏时间,⽽批量处理命令会将n次⽹络时间缩减为1次⽹络时间,也就是1次⽹络传输时间+n 次命令处理时间。

但是需要注意的是,Redis是单线程的,如果⼀次批量处理命令过多,会造成Redis阻塞或⽹络拥塞(传输数据量⼤)。

③、setnx可以⽤于实现分布式锁,具体实现⽅式后⾯会介绍。

上⾯是 string 类型的基本命令,下⾯介绍⼏个⾃增⾃减操作,这在实际⼯作中还是特别有⽤的(分布式环境中统计系统的在线⼈数,利⽤Redis的⾼性能读写,在Redis中完成秒杀,⽽不是直接操作数据库。

Redis-集群 - 三台服务器

Redis-集群 - 三台服务器

Redis-集群安装详细步骤一、Redis集群部署文档(centos6系统)现有三台物理机10.18.154.2 10.18.154.3 10.18.154.4(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)10.18.154.2:700010.18.154.2:700110.18.154.3:700010.18.154.3:700110.18.154.4:700010.18.154.4:7001二、安装Redis(10.18.154.2、10.18.154.3、10.18.154.4)下载redis-3.2.1.tar.gz[root@localhost ~]# tar zxvf redis-3.2.1.tar.gz[root@localhost ~]# cd redis-3.2.1[root@localhost redis-3.2.1]# make[root@localhost redis-3.2.1]# make install[root@localhost ~]# mv redis-3.2.1 /usr/local/redis[root@localhost ~]# cd /usr/local/redis/[root@localhost ~]# mkdir /usr/local/cluster[root@localhost ~]# cp /usr/local/redis/redis.conf /usr/local/cluster/[root@localhost ~]# vi /usr/local/cluster/redis.conf##修改配置文件中的下面选项port 7000bind 10.18.154.2 127.0.0.1daemonize yes#如果你想让它在后台运行,你就把它改成yescluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes[root@localhost ~]# mkdir /usr/local/cluster/7000[root@localhost ~]# mkdir /usr/local/cluster/7001[root@localhost ~]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7000[root@localhost ~]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7001[root@localhost ~]# cp /usr/local/cluster/redis.conf /usr/local/cluster/7002[root@localhost 7000]# redis-server redis.conf ---启动redis服务##注意:拷贝完成之后要修改7001目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称##启动之后使用命令查看redis的启动情况ps -ef|grep redis三、执行redis的创建集群命令创建集群[root@localhost src]# cd /usr/local/redis/src/[root@localhost src]#./redis-trib.rb create --replicas 1 10.18.154.2:700010.18.154.2:7001 10.18.154.3:7000 10.18.154.3:7001 10.18.154.4:700010.18.154.4:7001执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境错误内容:/usr/bin/env: ruby: No such file or directory所以需要安装ruby的环境,这里推荐使用yum install ruby安装yum install ruby然后再执行创建集群命令,报错,提示缺少rubygems组件,使用yum安装错误内容:./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)from ./redis-trib.rb:24yum install rubygems再次执行创建集群命令,报错提示不能加载redis,是缺少redis、ruby接口,gem 安装错误内容:/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'gem install redis这里可能无法安装,因为无法连接gem服务器:[root@localhost ~]# gem install redis --version 3.0.0ERROR: Could not find a valid gem 'redis' (= 3.0.0) in any repository#需要手工下载并安装:wget https:///gems/redis-3.2.1.gemgem install -l ./redis-3.2.1.gem输入yes,然后配置完成。

在三台服务器,搭建redis三主三从集群

在三台服务器,搭建redis三主三从集群

在三台服务器,搭建redis三主三从集群⼀、资源准备1、准备三台服务器H1、H2、H3172.26.237.83 H1172.26.237.84 H2172.26.237.85 H3⼆、配置服务器1、在H1服务器设置SSH免密登录;在H1⽣成RSA公钥和私钥(在H1操作)(1)执⾏ssh-keygen -t rsa命令(2)进⼊⽣成密钥所在的⽂件⽬录cd /root/.ssh/(3)将公钥(名为id_rsa.pub⽂件)追加到认证⽂件(名为authorized_keys⽂件),先后执⾏以下指令:ssh-copy-id172.26.237.83ssh-copy-id172.26.237.84ssh-copy-id172.26.237.85(注意:这⾥的IP是H1、H2、H3内⽹IP,执⾏后需要输⼊yes和服务器密码)2、配置域名解析⽂件(负责将主机名称映射到相应的IP地址)(1)在root⽬录创建env⽬录,并进⼊env⽬录下执⾏以下命令cat > /root/env/hosts.txt <<EOF172.26.237.83 H1172.26.237.84 H2172.26.237.85 H3EOFcat /root/env/hosts.txtcat /root/env/hosts.txt >> /etc/hosts(2)在每个节点进⼊env创建redis源配置⽂件,命名为redis-env.confecho -e "port 7001\ncluster-enabled yes\ndaemonize yes\ndir /root/soft/7001\ncluster-config-file nodes-7001.conf\npidfile "/root/soft/7001/redis-7001.pid"\nlogfile "/root/soft/7001/redis-7001.log"\nappendonly yes" > "redis-env.conf"配置⽂件说明:port 7000cluster-enabled yesdir /root/soft/7000cluster-config-file nodes-7000.confpidfile /root/soft/7000/redis-7000.pidlogfile /root/soft/7000/redis-7000.logappendonly yesdaemonize yesprotected-mode no3、在各个节点下载安装redis安装包(1)创建/root/soft⽬录mkdir -p /root/soft(2)下载安装包、解压、并进⾏编译cd /root/soft# 下载wget http://download.redis.io/releases/redis-5.0.5.tar.gz# 解压tar -zxvf redis-5.0.5.tar.gz# cd redis-5.0.5 进⾏编译make4、指定配置⽂件(1)创建/root/soft/7000⽬录与/root/soft/7001⽬录cd /root/soft/mkdir7000cd /root/soft/mkdir7001(2)将之前创建的源配置⽂件拷贝到7000和7001⽬录下cd /root/envcp -R redis-env.conf /root/soft/7000/redis.confcp -R redis-env.conf /root/soft/7001/redis.conf(3)分别进⼊7000和7001⽬录,修改redis.conf配置(修改成对应的端⼝),并检查⽂件路径是否正确(4)启动redis-server服务cd redis-5.0.5./src/redis-server ../7000/redis.conf./src/redis-server ../70001/redis.conf启动redis-server需要注意,守护进程需要打开,不然启动的时候是不成功的(5)检查是否启动成功ps -ef |grep redis5、创建集群(在H1操作)三主三从架构说明三台服务器,启动6个实例,形成三主三从,其中存储相同数据的主从节点不能落在同⼀台机器上,⽬的是防⽌部署redis的虚拟机宕机从⽽造成主从节点全部失效。

redis集群配置参数及优化

redis集群配置参数及优化

Redis集群配置参数及优化Redis的主要参数配置在redis.conf文件中。

1.conf内存值2.bindip默认情况下,如果没有指定“bind”配置指令,Redis将侦听服务器上可用的所有网络接口的连接。

默认情况:bind127.0.0.1实际配置:bind本机ip3.protected-modeyes启用默认保护模式。

只有当您确定您希望其他主机的客户端连接到Redis 时,您才应该禁用它,即使没有配置身份验证,也没有使用“bind”指令显式列出特定的接口集。

4.tcp-keepalive300如果非零,请使用SO_KEEPALIVE向没有通信的客户发送TCP协议。

这很有用,有两个原因:a)检测死同伴b)从中间的网络设备的角度进行连接在Linux上,指定的值(以秒为单位)是用于发送ack的周期。

注意,要关闭连接,需要双倍的时间。

这个选项的合理值是300秒,这是新的Redis默认值,从Redis3.2.1开始。

5.timeout0在客户机空闲N秒后关闭连接(0到禁用)6.port6379在指定端口上接受连接,默认值是63797.daemonizeyesredis后台运行8.pidfile/var/run/redis_6379.pid如果指定了一个pid文件,Redis会在启动时指定,并在退出时删除它。

当服务器运行非守护进程时,如果配置中没有指定pid文件,则不会创建pid文件。

当服务器被守护时,即使没有指定,也会使用pid文件,默认为“/var/run/redis.pid”。

创建一个pid文件是最好的工作:如果Redis不能创建它,那么服务器就会正常启动和运行。

9.loglevelnotice指定服务器冗余级别包括:a)debug:大量信息,用于开发/测试b)verbose:许多很少有用的信息,但不像debug级别那样混乱c)notice:适度详细,可能在生产中需要d)warning:只有非常重要/关键的消息被记录10.logfile""指定日志文件名。

springboot中使用redis集群操作步骤

springboot中使用redis集群操作步骤

springboot中使用redis集群操作步骤在Spring Boot中使用Redis集群,主要涉及以下几个步骤:1. 添加相关依赖:在`pom.xml`文件中添加Redis客户端依赖。

Spring Boot的官方推荐依赖是`spring-boot-starter-data-redis`,它包含了Spring Data Redis的依赖。

2. 配置Redis集群连接信息:在`application.properties`(或`application.yml`)文件中配置Redis集群的连接信息。

可以使用以下属性进行配置:```````spring.redis.cluster.nodes`用于指定Redis集群中各个节点的连接地址和端口。

`spring.redis.cluster.max-redirects`用于指定在进行节点重定向操作时,最大的重定向次数。

这些配置项可以根据实际情况进行修改。

3. 创建RedisTemplate实例:在Spring Boot的配置类中创建`RedisTemplate`的实例。

可以使用`LettuceConnectionFactory`作为Redis连接工厂,并将其注入到`RedisTemplate`中。

示例代码如下:```javapublic class RedisConfigprivate String clusterNodes;private Integer maxRedirects;public RedisConnectionFactory redisConnectionFactorRedisClusterConfiguration clusterConfiguration = new RedisClusterConfiguration(Arrays.asList(clusterNodes.split(",")) );clusterConfiguration.setMaxRedirects(maxRedirects);return new LettuceConnectionFactory(clusterConfiguration);}public RedisTemplate<String, Object> redisTemplatRedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(;redisTemplate.setConnectionFactory(redisConnectionFactory();return redisTemplate;}```4. 使用RedisTemplate进行操作:在代码中使用`RedisTemplate`的实例进行Redis操作。

redis使用方法

redis使用方法

redis使用方法Redis是一款快速、高性能、非关系型的键值数据库,它支持多种数据结构,包括字符串、哈希、列表、集合和有序集合等。

Redis 被广泛应用于缓存、消息队列、排行榜、实时消息处理、计数器等场景。

本文将介绍Redis的使用方法,包括安装、配置、数据类型、命令等方面。

一、安装RedisRedis可以在Linux、Windows、Mac等操作系统上运行,安装Redis 的方式也有多种。

本文将以Ubuntu为例,介绍如何安装Redis。

1. 安装Redis在终端中输入以下命令安装Redis:sudo apt-get updatesudo apt-get install redis-server2. 启动Redis安装完成后,可以使用以下命令启动Redis:redis-server3. 测试RedisRedis启动后,可以使用以下命令测试Redis是否正常工作: redis-cli ping如果返回“PONG”,表示Redis已经启动并正常工作。

二、配置RedisRedis的配置文件位于/etc/redis/redis.conf,可以使用文本编辑器打开并修改配置文件。

以下是一些常用的配置项:1. 绑定IP地址bind 127.0.0.1默认情况下,Redis只能在本地访问,如果需要远程访问Redis,可以将IP地址改为0.0.0.0。

2. 设置密码requirepass yourpassword为了保护Redis的安全,可以设置密码。

设置密码后,需要在连接Redis时输入密码才能进行操作。

3. 设置内存限制maxmemory 100mbRedis默认不限制内存使用,如果需要限制内存使用,可以设置maxmemory参数。

4. 设置持久化方式save 900 1save 300 10save 60 10000Redis支持多种持久化方式,包括RDB和AOF。

RDB是将Redis的数据快照保存到磁盘上,AOF是将Redis的操作日志保存到磁盘上。

redis安装及一主两从三sentinel配置

redis安装及一主两从三sentinel配置

Redis安装及一主两从三sentinel配置一.安装Redis(1)cd /usr/src进入下载目录(2) yum install -y wgetgcc make tcl安装依赖(3)tar -zxvf redis-3.2.7.tar.gz 解压(4)cd redis-3.2.7 进入redis目录(5)make 编辑(6)make test 测试对编译不理解的同学可以看看这个 /secondjanuary/article/details/8985795测试过程报错[exception]: Executing test client: NOREPLICAS Not enough good slaves to write.. NOREPLICAS Not enough good slaves to write.while executing这种情况下,可以修改当前目录文件tests/integration/replication-2.tcl,将after 1000改为after 10000以延长等待时间重新测试(7)make install PREFIX=/usr/local/redis PREFIX安装指定目录否则安装到/usr/local/bin里面了(8)启动redis服务 ./redis-server ./redis-conf发现很多错误:1.WARNING: The TCP backlog setting of 511 cannot be enforced because/proc/sys/net/core/somaxconn is set to the lower value of 128echo 511 > /proc/sys/net/core/somaxconn写到/etc/rc.local里面 rc.local是开机启动程序是一个软连接(确定两者都有执行权限)lrwxrwxrwx. 1 root root 13 Aug 2 07:50 /etc/rc.local ->rc.d/rc.local2.WARNINGovercommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to/etc/sysctl.conf and then reboot or run the command'sysctlvm.overcommit_memory=1' for this to take effect.往/etc/sysctl.conf中添加vm.overcommit_memory = 1/sbin/sysctl –p使文件立即生效3.WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issuerun the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis mustbe restarted after THP is disabled.echo never > /sys/kernel/mm/transparent_hugepage/enabled写到/etc/rc.local里面在后台运行的话修改配置redis.conf daemonizeyes 就可以了(9)运行./redis-cli二.Redis配置文件说明(/usr/local/redis/bin)1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonizeyes2. 绑定的主机地址修改主机172.16.0.52配置文件去掉bind注释符#,bind设置成主机ipbind172.16.0.52 127.0.0.1修改主机172.16.0.53配置文件去掉bind注释符#,bind设置成主机ipbind172.16.0.53127.0.0.13修改172.16.0.53机器的配置文件,使53变成52从机器slaveof 172.16.0.52 6379 (172.16.0.52机器不需要操作)4. 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。

从0到1在Linux上搭建Redis6.0的Cluster集群教程

从0到1在Linux上搭建Redis6.0的Cluster集群教程

从0到1在Linux上搭建Redis6.0的Cluster集群教程Redis集群模式分三种⽅式:1、主从模式,这⾥通常指的是,主down后,需要⼿动升级从库为主库。

主库⽀持读写,从库只读。

⾄少两个redis实例2、哨兵模式,是1模式的加强,由哨兵模式⾃动选举从库中的某⼀个为主库。

解决⾼可⽤问题。

⾄少三个redis实例3、Cluster集群模式,除了解决⾼可⽤问题外,还解决⼤量数据存储问题,通过slot⽅式路由到不同的服务器组中。

⾄少3台服务器,六个redis实例。

详细的介绍请参阅:https:///miss1181248983/article/details/90056960下⾯介绍如何搭建Cluster集群模式。

1、⾸选准备三台阿⾥云机器,ip分别如下s1:172.16.213.251s2:172.16.213.250s3:172.16.213.246注意:建议尽量不要选择Aliyun Linux操作系统,会遇到各种奇怪奇葩的问题,笔者⽤Aliyun linux花费⼤量时间,并未安装成功,客服也仅仅只给建议,⽆奈换回主流的CenterOS,下⾯是三台服务器的版本情况lsb_release -a2、安装Redis 6.0.10版本的,检查服务器环境是否满⾜gcc -v #检查gcc版本,需要是8.3+的3、安装tcl,否则编译redis的时候不通过,这⾥安装的时候直接使⽤rpm编译好的包执⾏安装即可。

⼩tips:国内有很多linux软件镜像,这⾥采⽤阿⾥云的镜像⽹站https:///packageSearch?word=tcl,点开后直接搜索即可,注意使⽤⾃⼰需要的版本rpm -ivh https:///centos/8.3.2011/BaseOS/x86_64/os/Packages/tcl-8.6.8-2.el8.x86_ 64.rpm?spm=a2c6h.13651111.0.0.70662f7099C6CD&file=tcl-8.6.8-2.el8.x86_64.rpm#使⽤上⾯命令进⾏安装,注意安装的时候要重新获取⼀次rpm安装包地址,输⼊命令回车,⼀会之后再回车⼀次,即可以看到Done安装完成!4、下载Redis,我们默认放到/usr/local/redis-6.0.10⽂件夹cd /usr/localwget https://download.redis.io/releases/redis-6.0.10.tar.gztar -zvxf redis-6.0.10.tar.gzcd redis-6.0.10/make && make test && make install #也可以分步执⾏,看到下⾯截图的命令基本代表已经安装成功了。

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

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

Linux下Redis集群安装部署及使⽤详解(在线和离线两种安装+相关错误解决⽅案)⼀、应⽤场景介绍 本⽂主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联⽹的Linux环境和脱机的Linux环境下是如何安装的。

因为⼤多数时候,公司的⽣产环境是在内⽹环境下,⽆外⽹,服务器处于脱机状态(最近公司要上线项⽬,就是⽆外⽹环境的Linux,被离线安装坑惨了,⾛了很多弯路,说多了都是⾎泪史啊%>_<%)。

这也是笔者写本⽂的初衷,希望其他⼈少⾛弯路,下⾯就介绍如何在Linux安装部署Redis集群。

⼆、安装环境及⼯具 系统:Red Hat Enterprise Linux Server release 6.6 ⼯具:XShell5及Xftp5 安装包:GCC-7.1.0 Ruby-2.4.1 Rubygems-2.6.12 Redis-3.2.9(3.x版本才开始⽀持集群功能)三、安装步骤 要搭建⼀个最简单的Redis集群,我们⾄少需要6个节点:3个Master和3个Slave。

那为什么需要3个Master呢?其实就是⼀个“铁三⾓”的关系,当1个Master下线的时候,其他2个Master 和对应的Salve⽴马就能顶替上去,确保集群能够正常使⽤,如果你之前了解Mongodb/Hadoop/Strom这些的话,你就很容易⽬标⼀般分布式的最低要求基数个数节点,这样便于选举(少数服从多数的原则)。

本⽂当中,我们就偷下懒,在⼀台Linux虚拟机上搭建6个节点的Redis集群(实际真正⽣产环境,需要3台Linux服务器分布存放3个Master)1、安装GCC环境安装Redis需要依托GCC环境,先检查Linux是否已经安装了GCC,如果没有安装,则需要进⾏安装检查GCC是否安装,可以看看版本号$ gcc -v如果已经安装了GCC,则会显⽰以下信息如果没有任何信息,则我们可以通过命令yum install gcc-c++进⾏在线安装$ yum install gcc-c++如果没有⽹络的时候,我们就需要下载GCC的安装包进⾏⼿动安装了,具体⽅法还是⽐较复杂的,具体离线安装GCC的⽅法,请参考我的另外⼀篇⽂章《》2、安装Ruby和Rubygems如果有⽹的话,则通过yum命令进⾏安装,⾃动将关联的依赖包全部安装$ yum install ruby$ yum install rubygems如果是离线的状态,我们则可以选择下载Ruby和Rubygems,解压⼿动进⾏安装,具体的⽅法请参考我的另外两篇⽂件《》和《》,这⾥我们不做多讲解。

redis单机安装以及集群搭建(redis-6.2.6)

redis单机安装以及集群搭建(redis-6.2.6)

redis单机安装以及集群搭建(redis-6.2.6)之前写过⼀篇基于redis-3.2.4版本的安装⽇记,这篇是基于redis-6.2.6改动不少,故再次记录⼀下两台电脑10.2.5.147,10.2.5.148,都是centos7.5本次搭建4主4从集群1.单机安装1.1.下载安装包直接从redis官⽹下载安装包,官⽹地址:https://redis.io/download直接使⽤命令下载:wget http://download.redis.io/releases/redis-6.2.6.tar.gz1.2.安装编译将安装包直接上传到了/opt⽬录解压 tar -zxvf redis-6.2.6.tar.gz 之后,得到⼀个redis-6.2.6的⽂件夹个⼈⽐较喜欢将⽂件信息放在/usr/local/redis⽬录下,所以cp /opt/redis-6.2.6/* /usr/local/redis接下来就是编译了进⼊到/usr/local/redis⽬录,执⾏make命令make编译报错make[3]: 进⼊⽬录“/usr/local/redis/deps/hiredis”cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb alloc.cmake[3]: cc:命令未找到make[3]: *** [alloc.o] 错误 127make[3]: 离开⽬录“/usr/local/redis/deps/hiredis”make[2]: *** [hiredis] 错误 2make[2]: 离开⽬录“/usr/local/redis/deps”make[1]: [persist-settings] 错误 2 (忽略)CC adlist.o/bin/sh: cc: 未找到命令make[1]: *** [adlist.o] 错误 127make[1]: 离开⽬录“/usr/local/redis/src”安装更新gccyum isntall gcc-c++make编译报错致命错误:jemalloc/jemalloc.h:没有那个⽂件或⽬录分配器allocator,如果有MALLOC 这个环境变量,会有⽤这个环境变量的去建⽴Redis。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

redis主从服务器搭建
修改记录
目录
redis主从服务器搭建 (1)
一.redis主从服务器搭建 (2)
第一步:下载redis (2)
第二步:解压redis tar包 (2)
第三步:进入reidis目录 (2)
第四步:make (2)
第五步:make install (3)
第六步:修改redis.conf 操作 (3)
第七步:redis从服务器配置 (4)
第八步:修改从服务redis.conf (4)
二.redis测试 (4)
第一步:编写redis客户端启动shell (4)
第二步:启动客户端 (5)
第三步:操作 (5)
第四步:set name test (5)
第五步:get name (5)
第六步:从服务器端启动客户端 (5)
第七步:从服务器端(10.105.76.100) get name (5)
三.sentinel配置及启动 (5)
第一步:修改sentinel.conf (6)
第二步启动sentinel (6)
第三步:启动sentinel (6)
一.redis主从服务器搭建
第一步:下载redis
在redis官网下载redis2.8.17版本
第二步:解压redis tar包
将下载的redis-2.8.17.tar.gz放在10.105.76.99(主服务器)上/usr/local下然后解压tar包命令:tar -zxvf redis-2.8.17.tar.gz
第三步:进入reidis目录
进入redis-2.8.17目录命令: cd redis-2.8.17
第四步:make
make 或者make MALLOC=libc 如果使用make时报错(zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory)此时可使用make MALLOC=libc
出现下图说明make完成
第五步:make install
第六步:修改redis.conf 操作
进入redis安装目录cd /usr/local/redis-2.8.17,vi redis.conf
将daemonize no改为yes ,意思是在后台运行
logfile改为log的存放路径
requirepass 前面的#去掉后面改为itmiredis此处为密码
前六步已经完成了redis主端的安装及配置,如果需要可以写一个启动redis的shell脚本,touch start.sh,vi start.sh 里面的内容为src/redis-server redis.conf
第七步:redis从服务器配置
将安装好的redis拷贝到从服务器(10.105.76.100) 命令scp -r /usr/local/redis-2.8.17
root@10.105.76.100:/usr/local
第八步:修改从服务redis.conf
拷贝完成后进入从服务器(10.105.76.100) ,cd /usr/local/redis-2.8.17,修改redis.conf
slaveof ip(10.105.76.99) 端口(6379) 此处为主服务的ip和端口
因为主服务上设置了密码所以需要修改masterauth ,并将requirepass注释掉
此时redis主从应配置完成通过start.sh分别启动redis(10.105.76.99)和(10.10.576.100) 通过ps -ef|grep redis查看进程,出现如下图说明redis启动完成
二.redis测试
第一步:编写redis客户端启动shell
可以写一个shell脚本启动redis客户端cd /usr/local/redis-2.8.17/,touch startcli.sh,vi startcli.sh startcli.sh内容为src/redis-cli,并将此文件拷贝到从服务器10.105.76.100
第二步:启动客户端
在主服务器端(10.105.76.99) 命令:sh startcli.sh
第三步:操作
输入密码auth itmiredis
第四步:set name test
第五步:get name
第六步:从服务器端启动客户端
从服务器端启动客户端(10.105.76.100),sh startcli.sh
第七步:从服务器端(10.105.76.100) get name
此时说明主从服务已经搭建完成。

三.sentinel配置及启动
由于主从方式在主服务器宕机后需要将从服务器改为主服务,需要启动sentinel服务,此时需要配置sentinel,配置方式如下
第一步:修改sentinel.conf
从服务器10.105.69.100中sentinel.conf的端口,由于sentinel端口不能重复所以此端口需要改为26380
剪口主服务器sentinel monitor mymaster 10.105.76.99 6379 2
第二步启动sentinel
为了方便,编写一个shell脚本,此处省略编写步骤sentinel.sh内容为src/redis-sentinel sentinel.conf --sentinel &
第三步:启动sentinel
命令sh sentinel.sh,主从分别启动
此时redis主从服务器搭建已经完成,并且通过sentinel监控,主服务器宕机后自动将从服务器转为主服务器。

相关文档
最新文档