Windows下Redis集群搭建
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。
集群的配置步骤
集群的配置步骤一、搭建集群环境的准备工作在开始配置集群之前,我们需要先进行一些准备工作。
首先,确保所有服务器都已经正确连接到网络,并且能够相互通信。
其次,确保每台服务器上已经安装了操作系统,并且操作系统版本一致。
最后,确保每台服务器上已经安装了必要的软件和工具,例如SSH、Java等。
二、创建集群的主节点1.选择一台服务器作为集群的主节点,将其IP地址记录下来。
2.登录到主节点服务器上,安装并配置集群管理软件,例如Hadoop、Kubernetes等。
3.根据集群管理软件的要求,配置主节点的相关参数,例如集群名称、端口号等。
4.启动集群管理软件,确保主节点能够正常运行。
三、添加集群的工作节点1.选择一台或多台服务器作为集群的工作节点,将其IP地址记录下来。
2.登录到工作节点服务器上,安装并配置集群管理软件,确保与主节点的版本一致。
3.根据集群管理软件的要求,配置工作节点的相关参数,例如主节点的IP地址、端口号等。
4.启动集群管理软件,确保工作节点能够正常连接到主节点。
四、测试集群的连接和通信1.在主节点服务器上,使用集群管理软件提供的命令行工具,测试与工作节点的连接和通信。
例如,可以使用Hadoop的hdfs命令测试与工作节点的文件系统的连接。
2.确保主节点能够正确访问工作节点的资源,并且能够将任务分配给工作节点进行处理。
五、配置集群的资源管理1.根据集群管理软件的要求,配置集群的资源管理策略。
例如,可以设置工作节点的CPU和内存的分配比例,以及任务的调度算法等。
2.确保集群能够合理分配资源,并且能够根据需要动态调整资源的分配。
六、监控和管理集群1.安装并配置集群的监控和管理工具,例如Ganglia、Zabbix等。
2.确保监控和管理工具能够正常运行,并能够及时发现和处理集群中的故障和问题。
3.定期对集群进行巡检和维护,确保集群的稳定和可靠性。
七、优化集群的性能1.根据实际情况,对集群的各项参数进行调优,以提高集群的性能和效率。
【搭建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。
RedisDesktopManager(Redis可视化工具)安装及使用教程
RedisDesktopManager(Redis可视化工具)安装及使用教程一、安装RedisDesktopManager二、使用RedisDesktopManager1. 打开RedisDesktopManager:安装完成后,在系统中RedisDesktopManager并打开。
2. 新建连接:在RedisDesktopManager界面点击左上角的“Connect to Redis Server”按钮,弹出新建连接窗口。
3. 填写连接信息:在新建连接窗口中,填写Redis服务器的IP地址、端口号等信息,并设置一个连接名称。
4. 测试连接:点击“Test Connection”按钮测试连接是否成功,如果成功会弹出一个成功提示框。
5. 保存连接:连接测试成功后,点击“Save”按钮保存连接信息。
6. 连接到Redis服务器:在RedisDesktopManager的连接列表中,选择之前保存的连接,并点击“Connect”按钮进行连接。
8. 导入导出数据:在导航栏中选择需要导入或导出的数据库,点击右上角的“Import Data”或“Export Data”按钮,选择对应的文件进行操作。
9. 执行命令:在RedisDesktopManager中支持执行Redis命令,点击左上角的“Execute”按钮,在弹出的命令输入框中输入对应的命令,回车执行即可。
10. 设置:点击RedisDesktopManager界面的“Settings”按钮,可以进行一些软件设置,如调整字体大小、修改界面语言等。
三、常见问题1. 连接失败:如果连接失败,首先检查填写的连接信息是否正确,确认Redis服务器是否开启并监听对应的端口。
2. 密码验证:如果Redis服务器需要密码验证,在连接信息中填写正确的密码即可。
3. RedisDesktopManager无法显示部分键值对:RedisDesktopManager在默认情况下只显示100条键值对,可以在设置中调整显示的数量。
redis集群搭建及配置
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第四步:makemake 或者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.17root@10.105.76.100:/usr/local第八步:修改从服务redis.conf拷贝完成后进入从服务器(10.105.76.100) ,cd /usr/local/redis-2.8.17,修改redis.confslaveof 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此时说明主从服务已经搭建完成。
服务器集群搭建
服务器集群搭建在当今的数字化时代,对服务器的需求与日俱增。
无论是大型企业,还是小型组织,都需要一个高效、稳定、可扩展的服务器架构来支持其业务运营。
然而,单一的服务器往往无法满足这些需求,因此我们需要搭建服务器集群,以提高服务器的性能、可用性和可扩展性。
一、服务器集群的概念服务器集群是由多台服务器组成的系统,通过负载均衡技术和网络设备将这些服务器整合成一个整体,以提供更高效、更稳定、更可扩展的服务。
当访问请求到来时,负载均衡器将根据预设的规则将请求分配给不同的服务器,从而平衡每台服务器的负载,提高整体性能。
二、搭建服务器集群的步骤1、确定需求在搭建服务器集群之前,我们需要明确我们的需求。
这包括我们需要支持多少用户,需要什么样的性能,需要多少存储空间等等。
这些需求将直接影响我们的服务器集群的设计。
2、选择合适的服务器选择合适的服务器是搭建服务器集群的重要步骤。
我们需要考虑服务器的性能、可用性、可扩展性等因素。
我们还需要考虑服务器的品牌、型号、配置等因素,以确保我们的服务器可以满足我们的需求。
3、安装操作系统和软件在每台服务器上安装相同的操作系统和软件是搭建服务器集群的必要步骤。
这可以确保我们的服务器具有一致的环境,从而避免由于环境差异导致的问题。
4、配置负载均衡器负载均衡器是服务器集群的核心组件之一。
我们需要选择一个适合我们的负载均衡器,并将其配置为根据预设的规则将请求分配给不同的服务器。
5、配置网络设备网络设备是服务器集群的重要组成部分。
我们需要配置网络设备,以确保服务器之间的通信畅通无阻。
这包括配置路由、交换机、防火墙等设备。
6、测试和优化在完成上述步骤后,我们需要进行测试和优化,以确保我们的服务器集群可以正常工作并达到预期的性能。
这包括对服务器进行压力测试、对负载均衡器进行监控和调整等。
三、总结搭建服务器集群是一个复杂的过程,需要考虑多种因素。
然而,通过合理的规划和正确的配置,我们可以构建一个高效、稳定、可扩展的服务器集群,以满足我们的需求并提供优质的服务。
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使用方法
redis使用方法Redis是一款开源的高性能内存键值存储数据库,它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合等。
Redis是一种非关系型数据库,它的特点是速度快、可扩展性好、数据持久化、应用场景广泛等。
本文将介绍Redis的使用方法,包括Redis的安装、配置、基本命令、数据结构、事务和持久化等方面。
通过本文的学习,读者可以了解Redis的基本使用方法,为使用Redis提供帮助。
一、Redis的安装Redis的安装可以通过源码编译安装或者使用包管理工具安装。
下面以Ubuntu为例,介绍Redis的安装过程。
1. 使用包管理工具安装Ubuntu系统可以通过apt-get命令安装Redis。
打开终端,输入以下命令:sudo apt-get updatesudo apt-get install redis-server安装完成后,可以通过以下命令查看Redis是否已经安装成功: redis-cli ping如果返回“PONG”表示Redis已经安装成功。
2. 源码编译安装如果需要使用最新版本的Redis,可以通过源码编译安装。
首先需要下载Redis的源码包,可以从Redis官网(https://redis.io/)下载最新版本的源码包。
下载完成后,解压源码包,进入解压后的文件夹,执行以下命令进行编译和安装:makemake install安装完成后,可以通过以下命令启动Redis服务:redis-server二、Redis的配置Redis的配置文件是redis.conf,它包含了Redis的各种配置选项。
在Ubuntu系统中,配置文件位于/etc/redis/redis.conf。
下面介绍一些常用的Redis配置选项。
1. bindbind选项指定Redis监听的IP地址,如果不指定,Redis将监听所有的IP地址。
可以通过以下命令指定Redis监听的IP地址: bind 127.0.0.12. portport选项指定Redis监听的端口号,默认为6379。
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集群部署文档(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,然后配置完成。
Windows下Redis的安装使用教程
Windows下Redis的安装使⽤教程本⽂主要为⼤家介绍缓存技术中的⼀种Redis的安装和使⽤,供⼤家参考,具体内容如下⼀、下载Redis for windows在⽹络中搜索Redis fow windows,就可以下载Redis的压缩包。
解压包。
会发现其中有32位和64位的不同版本的包,根据需要,使⽤对应的压缩包即可。
⼆、解压我使⽤的是redisbin_x64.zip的压缩包,将其解压到redis的⽂件夹中。
解压之后,会发现内容只有⼀些.exe的⽂件。
到这⾥,redis就算做好了⼀半了。
三、配置在redis下新建⼀个conf的⽂件夹,并创建 redis.conf ⽂本⽂件。
将⼀下内容复制到配置⽂件中。
# Redis configuration file example# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.# 是否以后台进程的形式运⾏,默认为nodaemonize no# When run as a daemon, Redis write a pid file in /var/run/redis.pid by default.# You can specify a custom pid file location here.# 如果指定以后台形式执⾏,则需要指定⼀个pid⽂件pidfile /var/run/redis.pid# Accept connections on the specified port, default is 6379#监听端⼝号port 6379# If you want you can bind a single interface, if the bind option is not# specified all the interfaces will listen for connections.# 绑定主机IP# bind 127.0.0.1# Close the connection after a client is idle for N seconds (0 to disable)# 客户端空闲超时时间,设置为0,则没有超时。
redis 连接方法
redis 连接方法Redis是一种高性能的key-value存储系统,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。
作为一个内存数据库,Redis的连接方法对于使用者来说非常重要。
本文将介绍几种常用的Redis连接方法,以帮助读者更好地使用Redis。
1. 使用Redis-cli连接Redis-cli是Redis自带的一个命令行工具,可以通过该工具与Redis建立连接。
在终端中输入redis-cli命令,即可进入Redis-cli的交互界面。
在交互界面中,可以输入Redis命令与Redis进行交互,如set、get等。
2. 使用Redis的官方支持库连接Redis提供了多种官方支持库,可以方便地与Redis建立连接。
常见的支持库有Java语言的Jedis、Python语言的redis-py、Node.js语言的ioredis等。
使用这些支持库,可以通过编程语言的代码与Redis建立连接,并执行相应的操作。
3. 使用连接池连接为了减少每次连接Redis的开销,可以使用连接池来管理Redis的连接。
连接池可以在应用程序启动时创建一定数量的连接,然后在需要连接Redis时,从连接池中获取连接,执行完操作后再将连接放回连接池。
这样可以避免频繁地创建和销毁连接,提高连接的复用率和性能。
4. 使用Redis分片连接当Redis的数据量非常大时,单个Redis实例可能无法存储所有的数据。
这时可以使用Redis分片来解决这个问题。
Redis分片将数据分散存储在多个Redis实例中,每个实例存储部分数据。
在应用程序中,可以根据数据的key通过一定的算法计算出对应的Redis 实例,然后与该实例建立连接并进行操作。
5. 使用Redis集群连接Redis集群是一种高可用的Redis部署方式,它将多个Redis实例组成一个集群,实现数据的自动分片和故障转移。
与Redis分片不同,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的使用方法,包括安装、配置、数据类型、命令等方面。
一、安装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服务之Redis5集群相关命令说明
Redis服务之Redis5集群相关命令说明 创建集群[root@node1 redis]# redis-cli -a admin --cluster create 192.168.0.41:6379 192.168.0.42:6379 192.168.0.43:6379 192.168.0.41:6380 192.168.0.42:6380 192.168.0.43:6380 --cluster-replicas 1 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.>>> Performing hash slots allocation on 6 nodes...Master[0] -> Slots 0 - 5460Master[1] -> Slots 5461 - 10922Master[2] -> Slots 10923 - 16383Adding replica 192.168.0.42:6380 to 192.168.0.41:6379Adding replica 192.168.0.43:6380 to 192.168.0.42:6379Adding replica 192.168.0.41:6380 to 192.168.0.43:6379M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) masterM: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) masterS: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380replicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380replicates 506776f910a52e45987785199e4fd293956ac1c5Can I set the above configuration? (type 'yes' to accept): yes>>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join.....>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 redis]# 提⽰:-a表⽰指定连接集群的密码,--cluster create 表⽰创建集群,后⾯跟要加⼊集群的各节点ip地址和端⼝(包括master和slave);--cluster replicas ⽤来指定集群master对应的副本(slave)数量;它会根据我们指定的数量,去创建master和slave,并把16384个槽位平均分配给对应的master节点,并且会⾃动关联master和slave的关系; 查看集群信息[root@node1 redis]# cd[root@node1 ~]# redis-cli --cluster info 192.168.0.41:6379[ERR] Node 192.168.0.41:6379 NOAUTH Authentication required.[root@node1 ~]# redis-cli -a admin --cluster info 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.[OK] 0 keys in 3 masters.0.00 keys per slot on average.[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.[OK] 0 keys in 3 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 ~]# 查看集群 node 对应关系[root@node1 ~]# redis-cli -a admin -c cluster nodesWarning: Using a password with '-a' or '-u' option on the command line interface may not be safe.0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379@16379 master - 0 1592495162494 3 connected 10923-16383eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380@16380 slave 91e34830f16e45110e37618540628587d5ecc7e2 0 1592495164579 5 connected91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379@16379 myself,master - 0 1592495158000 1 connected 0-54606274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380@16380 slave 506776f910a52e45987785199e4fd293956ac1c5 0 1592495159344 6 connected506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379@16379 master - 0 1592495163529 2 connected 5461-10922646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380@16380 slave 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 0 1592495161445 4 connected[root@node1 ~]# 查看集群状态[root@node1 ~]# redis-cli -a admin -c cluster infoWarning: Using a password with '-a' or '-u' option on the command line interface may not be safe.cluster_state:okcluster_slots_assigned:16384cluster_slots_ok:16384cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:6cluster_size:3cluster_current_epoch:6cluster_my_epoch:1cluster_stats_messages_ping_sent:159cluster_stats_messages_pong_sent:158cluster_stats_messages_sent:317cluster_stats_messages_ping_received:153cluster_stats_messages_pong_received:159cluster_stats_messages_meet_received:5cluster_stats_messages_received:317[root@node1 ~]# 提⽰:其实以上命令就是使⽤⾮交互式命令和redis交互,有点类似mysql中的-e选项,连接到对应redisserver上执⾏命令后返回,在mysql中⽤-e指定要执⾏的命令,在redis中⽤-c指定要执⾏的命令; 添加⼀个新节点到现有集群 实验环境说明 环境⽬录结构[root@node03 redis]# tree.├── 6379│└── etc│└── redis.conf├── 6380│└── etc│└── redis.conf├── 6381│└── etc│└── redis.conf├── 6382│└── etc│└── redis.conf├── bin│├── redis-benchmark│├── redis-check-aof│├── redis-check-rdb│├── redis-cli│├── redis-sentinel -> redis-server│└── redis-server├── dump_6379.rdb├── dump_6380.rdb├── logs│├── redis_6379.log│└── redis_6380.log├── redis-cluster-6379.conf├── redis-cluster-6380.conf└── run11 directories, 16 files[root@node03 redis]# 确认配置⽂件信息 提⽰:需要注意bind的地址必须能够和集群其他节点通信,端⼝不能和本机其他端⼝冲突,密码要和集群中的节点其他密码相同; 启动192.168.0.43:6081/6082 把192.168.0.43:6381/6382添加到现有集群[root@node1 ~]# redis-cli -a admin --cluster add-node 192.168.0.43:6381 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.>>> Adding node 192.168.0.43:6381 to cluster 192.168.0.41:6379>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.>>> Send CLUSTER MEET to node 192.168.0.43:6381 to make it join the cluster.[OK] New node added correctly.[root@node1 ~]# redis-cli -a admin --cluster add-node 192.168.0.43:6382 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.>>> Adding node 192.168.0.43:6382 to cluster 192.168.0.41:6379>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots: (0 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.>>> Send CLUSTER MEET to node 192.168.0.43:6382 to make it join the cluster.[OK] New node added correctly.[root@node1 ~]# 查看现有集群信息[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 0 slots | 0 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.[OK] 0 keys in 5 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) masterM: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots: (0 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 ~]# redis-cli -a admin -c cluster nodesWarning: Using a password with '-a' or '-u' option on the command line interface may not be safe.0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379@16379 master - 0 1592498237487 3 connected 10923-16383eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380@16380 slave 91e34830f16e45110e37618540628587d5ecc7e2 0 1592498238525 5 connected 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379@16379 myself,master - 0 1592498215000 1 connected 0-54606274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380@16380 slave 506776f910a52e45987785199e4fd293956ac1c5 0 1592498234346 6 connected 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382@16382 master - 0 1592498236438 7 connected95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381@16381 master - 0 1592498235388 0 connected506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379@16379 master - 0 1592498239566 2 connected 5461-10922646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380@16380 slave 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 0 1592498233609 4 connected [root@node1 ~]# 提⽰:可以看到对应集群上新加了两个节点,都是master⾓⾊,并且新加的两个节点都没有slave和slot; 分配槽位给192.168.0.43:6381[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 0 slots | 0 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.[OK] 0 keys in 5 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) masterM: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots: (0 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 ~]# redis-cli -a admin --cluster reshard 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) masterM: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots: (0 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.How many slots do you want to move (from 1 to 16384)? 4096What is the receiving node ID? 95fa21156efabc1e07b07b0bdbe52bf8fe004b86Please enter all the source node IDs.Type 'all' to use all the nodes as source nodes for the hash slots.Type 'done' once you entered all the source nodes IDs.Source node #1: allReady to move 4096 slots.Source nodes:M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[0-5460] (5461 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[5461-10922] (5462 slots) master1 additional replica(s)Destination node:M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots: (0 slots) masterResharding plan:Moving slot 5461 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5462 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5463 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5464 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5465 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5466 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5467 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5468 from 506776f910a52e45987785199e4fd293956ac1c5Moving slot 5469 from 506776f910a52e45987785199e4fd293956ac1c5……省略部分内容……Moving slot 12284 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617Moving slot 12285 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617Moving slot 12286 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617Moving slot 12287 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617Do you want to proceed with the proposed reshard plan (yes/no)? yesMoving slot 5461 from 192.168.0.42:6379 to 192.168.0.43:6381:Moving slot 5462 from 192.168.0.42:6379 to 192.168.0.43:6381:Moving slot 5463 from 192.168.0.42:6379 to 192.168.0.43:6381:Moving slot 5464 from 192.168.0.42:6379 to 192.168.0.43:6381:……省略部分内容……Moving slot 12285 from 192.168.0.43:6379 to 192.168.0.43:6381:Moving slot 12286 from 192.168.0.43:6379 to 192.168.0.43:6381:Moving slot 12287 from 192.168.0.43:6379 to 192.168.0.43:6381:[root@node1 ~]# 提⽰:这个和redis-trib.rb命令使⽤没有什么区别; 查看新分配的槽位信息[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 192.168.0.41:6379 (91e34830...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 0 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.[OK] 0 keys in 5 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[1365-5460] (4096 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[12288-16383] (4096 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) masterM: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[6827-10922] (4096 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 ~]# 提⽰:可以看到现在集群有4个节点都分配了4096个slot,还有⼀个没有slot; 更改节点(192.168.0.43:6382)为新节点(192.168.0.43:6381)的slave[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 0 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.[OK] 0 keys in 5 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[1365-5460] (4096 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[12288-16383] (4096 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) masterM: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) masterM: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[6827-10922] (4096 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 ~]# redis-cli -h 192.168.0.43 -p 6382 -a admin -c cluster replicate 95fa21156efabc1e07b07b0bdbe52bf8fe004b86Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.OK[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.[OK] 0 keys in 4 masters.0.00 keys per slot on average.>>> Performing Cluster Check (using node 192.168.0.41:6379)M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379slots:[1365-5460] (4096 slots) master1 additional replica(s)M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379slots:[12288-16383] (4096 slots) master1 additional replica(s)S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380slots: (0 slots) slavereplicates 91e34830f16e45110e37618540628587d5ecc7e2S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380slots: (0 slots) slavereplicates 506776f910a52e45987785199e4fd293956ac1c5S: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382slots: (0 slots) slavereplicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master1 additional replica(s)M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379slots:[6827-10922] (4096 slots) master1 additional replica(s)S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380slots: (0 slots) slavereplicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.[root@node1 ~]# 提⽰:我上⾯使⽤-c在shell上连接redis执⾏命令,这个和交互式执⾏命令⼀样的效果;从上⾯的信息可以看到192.168.0.43:6381已经有⼀个slave了,对应192.168.0.43:6382也没有出现到master列表中了; 验证:向集群中读写数据[root@node1 ~]# redis-cli -a adminWarning: Using a password with '-a' or '-u' option on the command line interface may not be safe.127.0.0.1:6379> KEYS *(empty list or set)127.0.0.1:6379> set aa bb(error) MOVED 1180 192.168.0.43:6381127.0.0.1:6379> set cc dd(error) MOVED 700 192.168.0.43:6381127.0.0.1:6379> set k v(error) MOVED 7629 192.168.0.42:6379127.0.0.1:6379> set kk vvOK127.0.0.1:6379> get kk"vv"127.0.0.1:6379> 提⽰:从上⾯的结果看,读写都可以正常执⾏,也能够正常的把对应的key进⾏计算,并告诉我们该到那个节点上执⾏对应的key读写操作; 验证:停掉集群中任意⼀台master,看看对应slave是否提升为master?[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.42Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.[ERR] Invalid arguments: you need to pass either a valid address (ie. 120.0.0.1:7000) or space separated IP and port (ie. 120.0.0.1 7000)[root@node2 redis]#[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.42:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.[OK] 1 keys in 4 masters.0.00 keys per slot on average.[root@node2 redis]# ps -ef |grep redisroot 20256 1 0 11:40 ? 00:00:15 redis-server 0.0.0.0:6379 [cluster]root 20258 1 0 11:40 ? 00:00:13 redis-server 0.0.0.0:6380 [cluster]root 20318 1926 0 13:04 pts/1 00:00:00 grep --color=auto redis[root@node2 redis]# kill -9 20256[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.Could not connect to Redis at 192.168.0.42:6379: Connection refused*** WARNING: 192.168.0.43:6380 claims to be slave of unknown node ID 506776f910a52e45987785199e4fd293956ac1c5.192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.[OK] 1 keys in 3 masters.0.00 keys per slot on average.[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.Could not connect to Redis at 192.168.0.42:6379: Connection refused192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 0 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.[OK] 1 keys in 4 masters.0.00 keys per slot on average.[root@node2 redis]# 提⽰:可以看到对应slave是能够被提升为master的; 验证:把对应宕机的节点启动起来,看看是否⾃动降级为slave呢?[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.Could not connect to Redis at 192.168.0.42:6379: Connection refused192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 0 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.[OK] 1 keys in 4 masters.0.00 keys per slot on average.[root@node2 redis]# redis-server /usr/local/redis/6379/etc/redis.conf[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.[OK] 1 keys in 4 masters.0.00 keys per slot on average.[root@node2 redis]# redis-cli -a admin -h 192.168.0.42 -p 6379 -c info replicationWarning: Using a password with '-a' or '-u' option on the command line interface may not be safe.# Replicationrole:slavemaster_host:192.168.0.43master_port:6380master_link_status:upmaster_last_io_seconds_ago:3master_sync_in_progress:0slave_repl_offset:6594slave_priority:100slave_read_only:1connected_slaves:0master_replid:7b45a2b847aba7e40e3a6b7f39d4511fa2a62b6amaster_replid2:0000000000000000000000000000000000000000master_repl_offset:6594second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:6497repl_backlog_histlen:98[root@node2 redis]#。
redis在Windows中下载及安装、设置教程
redis在Windows中下载及安装、设置教程⼀、下载:根据系统下载的版本:以(64位为例)下载后⼀般解压到根⽬录下:如(E:\Redis-x64-3.2.100)⼆、安装:打开cmd命令窗⼝,使⽤命令进⾏安装和注册redis到window服务安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose启动服务命令:redis-server.exe --service-start关闭服务命令:redis-server.exe --service-stop最后返回的successfully表⽰安装成功。
也可以通过任务管理器中查看后台中是否有redis-service来判断是否启动成功。
我们重新打开⼀个cmd ,作为⼀个客户端调⽤redis服务,如下图所⽰,调⽤命令是:redis-cli.exe -h 127.0.0.1 -p 6379,如下图显⽰地址和端⼝,说明调⽤成功然后我们使⽤set 和get 命令进⾏测试⼀下,set uname "abc",然后使⽤get uname可以获取到对应set的值,说明调⽤成功三、客户端使⽤redis:我们重新打开⼀个cmd ,作为⼀个客户端调⽤redis服务,如下图所⽰,调⽤命令是:redis-cli.exe -h 127.0.0.1 -p 6379,如下图显⽰地址和端⼝,说明调⽤成功然后我们使⽤set 和get 命令进⾏测试⼀下,set uname "abc",然后使⽤get uname可以获取到对应set的值,说明调⽤成功四、设置密码:还可以通过将字符串设置为空来清空密码:CONFIG SET requirepass ""错误:1、Creating Server TCP listening socket 127.0.0.1:6379: bind: No error解决办法:E:\Redis-x64-3.2.100>redis-cli.exe127.0.0.1:6379>shutdown(error) NOAUTH Authentication required.127.0.0.1:6379>auth root ## 登录OK127.0.0.1:6379>shutdownnot connected>exitE:\Redis-x64-3.2.100>redis-server.exe redis.windows.conf总结以上所述是⼩编给⼤家介绍的redis在Windows中下载及安装、设置教程,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
从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 #也可以分步执⾏,看到下⾯截图的命令基本代表已经安装成功了。
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。
【Redis】集群NetCore实战
【Redis】集群NetCore实战环境准备1. Redis集群(Windows集群搭建)启动Redis集群,给每个节点加上Titlestart "Redis - 6379" /min redis-server.exe redis.6379.confstart "Redis - 6380" /min redis-server.exe redis.6380.confstart "Redis - 6381" /min redis-server.exe redis.6381.confstart "Redis - 6382" /min redis-server.exe redis.6382.confstart "Redis - 6383" /min redis-server.exe redis.6383.confstart "Redis - 6384" /min redis-server.exe redis.6384.conf2. 安装StackExchange.Redis包dotnet add package StackExchange.Redis连接Redisvar configString = "127.0.0.1:6379";var options = ConfigurationOptions.Parse(configString);options.ReconnectRetryPolicy = new ExponentialRetry(5000);var client = ConnectionMultiplexer.Connect(options);这里只需要提供一个节点就能访问整个集群ConnectionMultiplexer 连接Redis可以使用ConfigurationOptions,或者直接字符串初始化(里面实现也是调用ConfigurationOptions.Parse转换)这里要说一下是他的重连重试机制,在第一次创建连接的时候,StackExchange.Redis会创建一个心跳检测internal static IDisposable Create(ConnectionMultiplexer connection){var token = new TimerToken(connection);var timer = new Timer(Heartbeat, token,MillisecondsPerHeartbeat, MillisecondsPerHeartbeat);token.SetTimer(timer);return timer;}使用System.Threading.Timer每秒钟检查一次。
Windows中启动Redis走配置文件的bat脚本
Windows中启动Redis⾛配置⽂件的bat脚本场景
Windows中Redis的下载安装与修改密码并启动:
在上⾯通过修改配置⽂件后启动redis的命令是
redis-server.exe redis.windows.conf
每次需要启动时都要在redis的⽬录下打开cmd,然后输⼊上⾯的命令。
可以将这个命令做成bat脚本的⽅式,双击执⾏执⾏这个命令。
实现效果如下
注:
实现
在redis的⽬录下新建⼀个txt⽂本⽂件,内容为
@echo off
redis-server.exe redis.windows.conf
exit
然后将此⽂本⽂件的后缀改为bat
然后就能实现上⾯那种双击执⾏启动的命令了。
为了实现开机启动,也可以将此脚本放在启动⽬录下,但是我还是更习惯随⽤随启动redis。
并且也喜欢这种带命令框⾮后台运⾏的模式。
可以根据⾃⼰的需要去扩展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows下搭建Redis集群Redis 集群简介Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。
Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。
Redis 集群采用了P2P的模式,完全去中心化。
Redis 把所有的 Key 分成了16384 个 slot,每个 Redis 实例负责其中一部分 slot 。
集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。
集群搭建要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时,强烈建议使用六个节点:其中三个为主节点,而其余三个则是各个主节点的从节点。
主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点1). 创建Redis集群目录在redis安装的根目录下通过命令行创建6个以端口命名的文件夹mkdir 7000 7001 7002 7003 7004 7005将安装的redis文件夹中的redis.windows.conf以及redis-server,分别拷贝到新建的六个文件夹中2). 更改配置将六个文件夹下的redis.windows.conf文件中以下属性进行修改:port 7001(对应文件夹的端口号)cluster-enabled yes(开启实例的集群模式)去掉注释cluster-config-file nodes.conf(保存节点配置文件,默认值为nodes.conf )去掉注释cluster-node-timeout 5000(是集群中各节点相互通讯时,允许"失联"的最大毫秒数,上面的配置为5秒,如果超过5秒某个节点没向其它节点汇报成功,认为该节点挂了。
)去掉注释appendonly yes(启用AOF持久化方式)注意:先不要设置密码,即将requirepass注释掉3). 启动6个redis服务redis-serverredis.windows.conf安装成Windows服务启动命令行到六个文件夹下,依次运行redis-server --service-install redis.windows.conf --service-name redis7000redis-server --service-install redis.windows.conf --service-name redis7001redis-server --service-install redis.windows.conf --service-name redis7002redis-server --service-install redis.windows.conf --service-name redis7003redis-server --service-install redis.windows.conf --service-name redis7004redis-server --service-install redis.windows.conf --service-name redis7005安装完毕后,进入Window的管理->服务,依次启动六个redis服务,见下图4).安装Ruby - Windows下面列出了在 Windows 机器上安装 Ruby 的步骤。
注意:在安装时,您可能有不同的可用版本。
● Window 系统下,我们可以使用 RubyInstaller 来安装 Ruby 环境,下载地址为:●下载 Ruby 2.5.1-2 (x64)之后,解压到新创建的目录下:●双击 rubyinstaller-2.5.1-2-x64 文件,启动 Ruby 安装向导。
●点击 Next,继续向导,记得勾选Add Ruby executables to your PATH,直到 Ruby 安装程序完成 Ruby 安装为止。
●安装后,通过在命令行中输入以下命令来确保一切工作正常:$ ruby-vruby2.2.35).安装RubyGem – Windows●进入下载RubyGems(ZIP文件)●解压缩rubygems-2.7.7.zip,双击运行解压后文件夹根目录下的setup.rb●更换gem镜像,启动命令行运行gem sources --add :///●安装Ruby的redis接口,命令行运行gem install redis6). 创建启动集群由于创建启动集群需要redis-trib.rb文件,它是一个 Ruby 程序,这个程序通过向实例发送特殊命令来完成创建新集群,检查集群或者对集群进行重新分片(reshared)等工作。
Windows的redis安装文件中是没有这个文件的,我们需要去官网下载Redis,官网的Redis是Linux版本,在其源码src文件夹下,将redis-trib.rb 拷贝到本机中Redis的安装目录中最后进入redis-trib.rb文件所在目录执行:rubyredis-trib.rb create --replicas1 127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:700 4127.0.0.1:7005敲回车后出现下图对话框,可以发现,7000-7002 为主节点,7003-7005为从节点,并向你确认是否同意这么配置。
输入yes 后,会开始集群创建。
安装成功后见下图:7). 连接集群进行测试连接集群的指令:redis-cli -c -h 127.0.0.1 -p 7000然后进入redis控制台后输入setnameaaa,出现下图出现了Redirected to slot 信息并自动连接到了7001节点,这也是集群的一个数据分配特性.至此,Redis Cluster在Windows上的配置就完成了!8)Redis集群数据分配策略:Redis采用一种叫做哈希槽(hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16(循环冗余检验码)算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384注意的是:必须要3个以后的主节点,否则在创建集群时会失败,三个节点分别承担的slot 区间是:节点A覆盖0-5460;节点B覆盖5461-10922;节点C覆盖10923-16383.所以上图中按照redis cluster的哈希槽算法:CRC16(‘name’)%16384 被分配到了7001端口的redis服务上。
9)安装过程常见错误:管理员权限命令行如果redis安装目录放在系统盘,会遇到操作权限的问题,可在桌面建立一个cmd的快捷方式,如下图:完成后右键点击该快捷方式,选择属性点快捷方式->高级最后勾上“用管理员身份运行”创建完毕,以后就可以用该快捷方式启动命令行,不用再受权限困扰了● window下安装redis报错:creating server tcp listening socket 127.0.0.1:6379: bind No error的解决方案如下,按顺序输入如下命令就可以连接成功1. redis-cli.exe2. shutdown3. exit4. redis-server.exe redis.windows.conf●创建redis服务时报错:D:\ProgramFiles\redis>redis-server.exe --service-install redis.windows.conf --loglevelverbose[12820] 06 Sep 11:00:26.431 # HandleServiceCommands: system error caught. error code=1073, message = CreateService failed: unknown error原因:系统服务中已经存在解决办法:1)先卸载服务:redis-server --service-uninstall2)删除widows服务输入sc delete 服务名称3)删除redis文件加下的appendonly.aof和nodes.conf文件4)然后再安装:redis-server--service-install redis.windows.conf启停:启动服务:redis-server --service-start停止服务:redis-server --service-stop如果出现[ERR] Sorry, can't connect to node错误:1.ruby 和rubygem 版本太低,安装新版本。
查看gem版本和redis版本(redis-cli -v可查看redis版本)2.查看reids配置文件,bind绑定的允许连接的ip是否正确。
3.是否redis配置文件还是使用了密码,使用了密码也可能导致这个错误。
如果出现[ERR] Node 127.0.0.1:7005 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0:。