您现在的位置是:主页 > news > 深圳政府招聘信息网站/排名优化百度
深圳政府招聘信息网站/排名优化百度
admin2025/6/24 9:31:53【news】
简介深圳政府招聘信息网站,排名优化百度,做网站空间百度云和阿里云区别,昆明网站建设公司推荐文章目录一、所需软件二、安装配置redis1.下载Redis-x64-3.2.100.zip2.创建Redis集群目录3.修改配置文件4.编写启动脚本或者进入每个端口命名的文件夹下启动服务三、安装Ruby四、安装Redis的Ruby驱动redis-xxxx.gem1.下载rubygems-3.0.6.zip2.下载后解压,打开命令窗…
文章目录
- 一、所需软件
- 二、安装配置redis
- 1.下载Redis-x64-3.2.100.zip
- 2.创建Redis集群目录
- 3.修改配置文件
- 4.编写启动脚本或者进入每个端口命名的文件夹下启动服务
- 三、安装Ruby
- 四、安装Redis的Ruby驱动redis-xxxx.gem
- 1.下载rubygems-3.0.6.zip
- 2.下载后解压,打开命令窗口切换到解压目录中,执行命令`ruby setup.rb`
- 3.再用 GEM 安装 Redis ,切换到redis安装目录,需要在命令行中,执行 `gem install redis`
- 五、安装集群脚本redis-trib
- 六、启动每个节点并且执行集群构建脚本
- 1.拷贝redis-trib.rb到6379的redis节点
- 2.点击每个节点start.bat进行启动
- 3.打开命令窗口切换到刚刚放redis-trib.rb的目录中,执行命令`redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384`
- 七、集群环境测试
- 1.命令测试 redis-cli
- 1)查看集群的信息
- 2)查看主从关系
- 3)查看各个节点分配slot
- 4)存值测试
- 2.Jedis代码测试
一、所需软件
1.Redis 3.2
需要 6 台 redis 服务器,搭建伪集群。
需要 6 个 redis 实例。
需要运行在不同的端口 6379-6384。
2.Ruby语言运行环境(我们需要使用ruby脚本来实现集群搭建)
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。
3.RubyGems简称gems
是一个用于对 Ruby组件进行打包的 Ruby 打包系统。
4.Redis的Ruby驱动redis-xxxx.gem
5.创建Redis集群的工具redis-trib.rb
二、安装配置redis
1.下载Redis-x64-3.2.100.zip
redis下载地址:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100
2.创建Redis集群目录
要让集群正常运作至少需要3个主节点,建议配置3个主节点,其余3个作为各个主节点的从节点(也是官网推荐的模式)。同一台电脑不同端口模拟。
把下载好的redis解压后,再复制出 5 份,配置 三主三从集群。 由于 redis 默认端口号为 6379,那么其它5份的端口可以为6380、6381、6382、6383、6384 并且把目录使用端口号命名。
3.修改配置文件
打开每个Redis目录下的文件 redis.windows.conf,修改里面的端口号分别对应相对应的文件夹名:6379、6380、6381、6382、6383、6384。
再修改集群支持配置,将以下配置前面的#去掉。
appendonly yes
cluster-enabled yes
cluster-config-file nodes-6379.conf #是为该节点的配置信息,这里使用 nodes-端口.conf命名方法,服务启动后会在目录生成该文件。
cluster-node-timeout 15000
4.编写启动脚本或者进入每个端口命名的文件夹下启动服务
编写一个 bat 来启动 redis,在每个节点目录下建立 startup.bat。
title redis-6379 #title命名规则 redis-相对应的端口
redis-server.exe redis.windows.conf
三、安装Ruby
redis的集群使用 ruby脚本编写,所以系统需要有 Ruby 环境。
ruby下载地址:https://rubyinstaller.org/downloads/
安装时3个选项都要勾选。
四、安装Redis的Ruby驱动redis-xxxx.gem
1.下载rubygems-3.0.6.zip
下载地址:https://rubygems.org/pages/download
2.下载后解压,打开命令窗口切换到解压目录中,执行命令ruby setup.rb
3.再用 GEM 安装 Redis ,切换到redis安装目录,需要在命令行中,执行 gem install redis
五、安装集群脚本redis-trib
下载地址:https://download.csdn.net/download/qq_45988641/21495380
打开该链接把里面的脚本保存为redis-trib.rb。
注意: 该脚本不支持redis 5.0以上的版本。
六、启动每个节点并且执行集群构建脚本
1.拷贝redis-trib.rb到6379的redis节点
建议保存到一个Redis的目录下(不用每个都放)
2.点击每个节点start.bat进行启动
每个启动成功界面如下图,除了端口号不一样,总共要启动6个。
3.打开命令窗口切换到刚刚放redis-trib.rb的目录中,执行命令redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
–replicas 1 表示每个主数据库拥有从数据库个数为1,master节点不能少于3个,所以我们用了6个redis。这个命令只需输入一次就好了,之后节点关闭,重启就不需要再执行了。
在出现 Can I set the above configuration? (type ‘yes’ to accept): 请确定并输入 yes 。成功后的结果如下:
注意事项:
-
现在是windows搭建的,以后再linux搭建只是redis安装与启动不一样其他都是一样的。
-
5.0以上版本兼容
如果出现 redis-trib.rb is not longer available! 如果redis版本是5.0以上,则使用如下命令:
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1
因为是redis5.0以上不再需要redis-trib.rb了,而是使用自带的redis-cli作为创建集群的命令了。如果不是,那么将redis-trib.rb改为老版本就可以了。
七、集群环境测试
1.命令测试 redis-cli
使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息
命令:redis-cli –c –h ”地址” –p "端口号" #c 表示集群
1)查看集群的信息
命令:cluster info
2)查看主从关系
命令:info replication
主库显示信息:
从库显示信息:
3)查看各个节点分配slot
命令:cluster nodes
可以看到有3个master,3个slave。以及可以看到master各自的slot分布情况。
4)存值测试
以6380节点为例,管理的slots为5461-10922,key为test的slot为6918,显然命中6380管理的卡槽6918,所以客户端也跳转到了6380。key为test1的slot为4768,在6379的卡槽范围0-5460,所以客户端又跳转到了6379。
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.
2.Jedis代码测试
@Testpublic void testCluster() throws IOException, InterruptedException {Set<HostAndPort> nodes = new HashSet<>();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);try {String res = cluster.get("name");System.out.println(res);
// cluster.quit();} catch (Exception e) {e.printStackTrace();}}
}