无时无刻写作业代码的程序员,怎么成为技术大牛,开端写技术代码?

小编特地从Ali技协(ATA)分享一篇内部小说:

Redis作为缓存系统的话依然很有价值的,在大数量方向里,也是急需有缓存系统的。一般能够设想tachyon恐怕redis,由于redis安装以及选用更不难,所以还是事先考虑了它。那么在有的场景下为了保险数据的可信性,就须求动用集群的方式布置,由此本篇文章就依照Redis
Cluster的背景讲解下布署以及后期的利用。

  图片 1

粗粗会席卷上面的内容:

甭管是支付、测试、运营,各样技术人士心境多多少少都有四个变成技术大牛的梦,究竟“梦想总是要有些,万一达成了呢”!便是对技术梦的求偶,促使大家不停地质大学力和升级换代自个儿。

  • Redis单机版的设置以及表达
  • Redis集群版的装置以及表达
  • 利用图形化学工业具访问Redis
  • 使用Jedis访问Redis
  • 使用JedisCluster访问Redis Cluster

不过“梦想是美好的,现实却是暴虐的”,很多同校在骨子里工作后就会意识,梦想是变成大牛,但做的事务看起来跟大牛都不沾边,例如,程序员说“每一天写作业代码还加班,如何才能成为技术大牛”,测试说“天天都有执行不完的测试用例”,运营说“扛机器接网线敲shell命令,这不是本身想要的运转人生”。。。。。。博客园上看似的题材“每天写作业代码的程序员,怎么变成技术大牛,开端写技术代码?”关切人数有6K+,答案有120+,当时自小编也应对了还要点赞数最多,后来做工作等级提高面评和联络的时候,又有了新的意识和想方设法,于是有了系统的盘整一篇小说的想法,希望让越多同学在技能大牛的旅途能够少走一些弯路。

之后会介绍一下,怎么样在斯Parker中央银行使redis,敬请期待。

是因为小编是程序员,所以以下的片段例证都是基于程序支付的,但大道理是相通的,测试、运行都得以借鉴。

Redis单机版安装

多少个典型的误区

拜大牛为师

天涯论坛上有人以为想变成技术大牛最简便易行直接、火速有效的格局是“拜团队技术大牛为师”,让他俩平日给你开小灶,给您分配一些有难度的职务。

笔者个人是反对那种方法的,主要的原因有多少个:

  • 大牛很忙,不太或者单独给您开小灶,更不容许每一天都给你开三个钟头的小灶;而且一个团队内部,借使大牛平常时时给你开小灶,难免会引起别的团伙成员的迷惑,笔者个人觉得一旦组织里的大牛如若的确有心的话,多给组织培训是最好的。不过做过培养和练习的都掌握,准备一场培训是很耗时的,课件和材质至少二个小时(还无法是散装时间),讲解三个时辰,大牛们八个月做二次培养和陶冶已经是很频仍了。
  • 因为第一个原因,所以一般要找大牛,都是带着题材去请教可能切磋。因为回答依旧探究难题无需太多的大运,更加多的是靠经验和积累,那种情景下大牛们都以很情愿的,终究影响力是大牛的一个重点目的嘛。然则也要尤其注意:若是平常问这么些书本也许google可以很不难查到的知识,大牛们也会很不耐烦的,究竟时间宝贵。日常有网络朋友问小编诸如“jvm的-Xmn参数怎样计划”那类难点,笔者都以一贯回应“请直接去google”,因为这么的标题莫过于是太多了,假诺自身不去系统学习,每一个都要问是不行浪费本身和人家的年月的。
  • 大牛不多,不太恐怕每种集体都有技巧大牛,只可以说共青团和少先队内部会有比你水平高的人,即便她每一日给你开小灶,最后你也只好进步到他的程度;而只假使跨团队的技术大牛,由于工作布置和分配的原因,直接请教和辅导的火候是相比少的,单凭参预三遍大牛的营造,是不太大概就成为技术大牛的。

综述上述的多少个原因,小编以为对于大部分人的话,要想成为技术大牛,首先依旧要精晓“首要靠本人”那一个道理,不要期望有个像武功师傅一样的大牛手把手一步一步的教您。适当的时候能够经过请教大牛也许和大牛切磋来进步自身,但超过50%岁月可能自身系统性、有指向的进步。

事务代码一样很牛逼

乐乎上一些答问认为写作业代码一样能够很牛逼,理由是工作代码一样可以有种种技术,例如能够动用封装和抽象使得业务代码更具可扩张性,能够通过和产品多调换以便更好的理解和促成业务,日志记录好了难点一定功效能够升官10倍。。。。。。等等。

作业代码一样有技术含量,那一点是迟早的,业务代码中的技术是各类程序员的基础,但只是明白了那几个技能,并不能够变成技术大牛,就好像娱乐中进步打怪一样,初叶打小怪,经验值很高,越到末端经验值越少,打小怪已经不可能升级经验值了,那么些时候就供给打部分更高级的怪,刷一些有挑战的副本了,没见到哪位游戏若是一贯打小怪就能升到顶尖的。成为技术大牛的路也是接近的,你要持续的升迁本人的水平,然前边临更大的挑衅,通过应对这几个挑战从而使和谐水平更上顶尖,然后如此往复,最后落得技术大牛甚至产业界大牛的程度,写作业代码只是那些打怪升级路上的3个挑衅而已,而且自身认为是相比较初级的三个挑战。

之所以本身认为:业务代码都写倒霉的程序员肯定无法变成技术大牛,但只把业务代码写好的程序员也还不可能变成技术大牛。

上班太忙没时间友好学习

无数人认为本人从未有过成为技术大牛并不是协调不明白,也不是友善不奋力,而是中国的这一个条件下,技术人士加班都太多了,导致自身没有额外的日子进行学习。

其一理由有早晚的客观性,毕竟和欧洲和美洲相比较,大家的加班确实要多一些,但以此成分只是二个亟需克服的难题,并不是不可逾越的壁垒,究竟大家身边只怕有那么多的大牛也是在炎黄以此条件成长起来的。

自己认为有多少个误区导致了那种意见的多变:

1)上班做的都是重复工作,要想升高必须协调额外去读书

多变这一个误区的首要缘由照旧在于认为“写作业代码是平昔不技术含量的”,而我明天上班就是写作业代码,所以本人在工作中不可能升官。

2)学习须要大段的连日时间很几个人以为要读书就要像高校讲课一样,给你一整天日子来讲学才算学习,而笔者辈一向突击又比较多,周末累的只想睡懒觉,也许只想去看看电影打打游戏来放松,所以就平素不时间攻读了。

1.1 下载

先是去官网下载想要的版本:
https://redis.io/download

本人那边选了二个本子没那么高的,省的变型太大,种种软件卓殊不了。于是挑个在此之前的四平久安版本下载,下载redis-3.2.10.tar.gz拷贝到目的机器。

是的的做法

Do more

做的愈来愈多,做的比你掌管布置给您的职务越多

自笔者在HW的时候,负责一个本子的开发,那么些本子的工作量大概是两千行左右,可是自身除了做完那些成效,还将涉嫌的效应全体控制领会了,代码(大概一千0行)也全体看了三回,做完这些本子后,作者对那几个版本相关的整套业务全体很纯熟了。经过一两遍集会后,大家发现自家对那块明白最熟了,接下去就有趣了:产品研究须求找笔者、测试有标题也找作者、老大对外支撑也找笔者;后来,不是本身承担的职能他们也找小编,尽管自身随即不理解,小编也会看代码大概找文书档案帮他们答复。。。。。。最终自身就成了小编这么些连串的“专家”了。纵然那个时候本人恐怕做作业的,照旧写作业代码,可是本身早已对全部育赛事情都很熟稔了。

如上只是一个大约的例证,其实就是想说:要想有机会,首先你得从人群中冒出来,要想冒出来,你就非得做到格外,要做到非凡,你就要做得越来越多

怎么办得越来越多呢?能够从以下多少个方面起先:

1)熟识更多事情,不管是否你承担的;熟稔更加多代码,不管是还是不是您写的

那样做有很多利益,举多少个简易的例子:

  • 须求分析的时候特别准确,能够在急需阶段就分辨风险、影响、难点
  • 难题处理的时候越发神速,因为有关的事情和代码都明白,能够飞速的论断难点大概的因由并开始展览排查处理
  • 方案设计的时候考虑进一步周详,由于有对全局工作的精通,能够统一筹划出更好的方案

2)领悟端到端

譬如你承担web后台开发,但其实用户发起一个http请求,要经过广大中间步骤才到你的服务器(例如浏览器缓存、DNS、nginx等),服务器一般又会通过许多拍卖才到你写的那某些代码(路由、权限等)这整个流程中的很多系统可能步骤,绝大多数人是不恐怕去插足写代码的,但控制了那一个知识对你的归结水平有相当的大职能,例如方案设计、线上故障处理那几个特别有含金量的技巧工作都急需综合技术水平。

“系统性”、“全局性”、“综合性”那么些字眼看起来相比较虚,但实在都以技巧大牛的必不可少的素质,要高达如此的境界,必须去熟识更加多系统、业务、代码。

3)自学

相似在比较早熟的团体,由于框架恐怕零部件已经进行了多量的包装,写作业代码所用到的技艺确实也相比较少,但我们要清楚“唯一不变的唯有变化”,框架有大概要一字不苟,组件或者要替换,只怕您换了一家商店,新公司既没有组件也未尝框架,要你从头开始来做。那一个都是机会,也是挑战,而机会和挑衅只会分配给有准备的人,所以这种情景下大家更为急需自学越来越多东西,因为实在等到要用的时候再来学已经远非时间了。

以java为例,大部分事情代码就是if-else加个数据库操作,但大家一齐能够友善学些越多java的学识,例如垃圾回收,调优,互联网编制程序等,这个可能暂且没用,但真要用的时候,不是google一下就足以了,这几个时候什么人已经控制了有关知识和技艺,机会正是什么人的。

以垃圾回收为例,我自个儿平日就抽时间学习了那几个知识,学了1年都不算上,但后来用上了一次,每便都化解了卡死的大标题,而一些同学,写了几年的java代码,对于stop-the-world是如何概念都不知晓,更毫不说去优化了。

Do better

要理解这一个世界上从未有过周到的东西,你承担的系列和事务,总有不客观和能够革新的地点,那么些“不客观”和“可改良”的地点,都以更高级别的魔鬼,打完后能够扩充越来越多的经历值。识别出这个地点,并且付诸消除方案,然后向主办提议,一遍不行一次,多提四回,只要有二次落地了,那就是您的机遇。

例如:

再也代码太多,是还是不是能够引入设计情势?

系统质量一般,可不可以举办优化?

时下是单机,假诺做成双机是还是不是更好?

本子开发品质不高,是或不是引入高效的单元测试和购并测试方案?

时下的连串太庞大,是还是不是能够透过重构和平消除耦改为一个类别?

Ali中间件有一对连串感觉大家也得以用,是不是能够引入 ?

。。。。。。。。。。。。。。。。。。。

假诺您去想,其实总能发现能够创新的地点的;借使您觉得系统哪里都不曾立异的地方,那就表明您的档次还不够,能够多学学相关技术,多看看产业界其余公司如何做,BAT都如何做。

本人二〇一一年调配到九游,刚起先接手了贰个简易的后台系统,天天便是匹配前台做多少增加和删除改查,看起来完全没意思,是吧?假诺只做那个真正没意思,但大家接手后做了很多事情:

  • 解耦,将一个后台拆分为二个后台,进步可扩大性和安静;
  • 双机,将单机改为双机系统,提升可相信性;
  • 优化,将本来三个耗费时间5时辰的接口优化为耗费时间6分钟

还有其余众多优化,后来大家那个组负责了越来越多的种类,后来以此小组伍人,负责了5个连串。

Do exercise

在做工作等级交流的时候,发现有众多同班真的也在品味Do more、Do
better,但在履行的历程中,大约种种人都蒙受同三个题材:光看不用效应很差,如何是好?

例如:

  • 读书了jvm的废料回收,不过线上相比少出现FGC导致的卡顿难题,就算出现了,恢复生机工作也是首先位的,不太或然线上冒出难点然后让各种同学都去练一入手,那怎么去执行那么些jvm的学识和技巧呢?
  • Netty笔者也看了,也明白了Reactor的原理,可是自个儿不容许参与Netty开发,怎么去让本人确实精晓Reactor异步形式呢?
  • 看了《高品质MySQL》,可是线上的数据库都是DBA管理的,测试环境的数据库感觉又是不管配置的,笔者怎么去印证那个技巧吧?
  • 框架封装了DAL层,数据库的拜会大家都不供给操心,大家怎么去询问分库分表实现?

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

那样难点还有许多,小编那边享用一下私家的经验,其实便是二个词:learning、trying、teaching!

1)Learning

以此是首先等级,看书、google、看录像、看别人的博客都得以,但要注意一点是“系统化”,尤其是一些基础性的东西,例如JVM原理、Java编制程序、网络编制程序,HTTP协议。。。。。。等等,这几个基础技术无法只经过google可能博客学习,小编的做法一般是先全体的看完一本书周全的垂询,然后再经过google、录制、博客去有针对性的追寻一些有疑问的地点,或许局地技艺。

2)Trying

其一手续便是解答前边提到的许多同学的可疑的关键点,形象来说正是“本身动手丰衣足食”,约等于投机去品尝搭建部分模仿条件,本人写一些测试程序。例如:

  • Jvm垃圾回收:可以本身写多个简短的测试程序,分配内部存款和储蓄器不自由,然后调整种种jvm运营参数,再运转的历程中利用jstack、jstat等一声令下查看jvm的堆内部存款和储蓄器分布和废品回收意况。那样的次第写起来相当的粗略,简单一点的就几行,复杂一点的也就几十行。
  • Reactor原理:自身真正去尝尝写3个Reactor格局的德姆o,不要以为那几个很难,最简便的Reactor情势代码量(包含注释)不超过200行(能够参见DougLee的PPT)。本身写完后,再去探视netty如何是好,一对照精晓就一发深厚了。
  • MySQL:既然有线上的布置能够参见,那能够一直让DBA将线上布署发给大家(注意去掉敏感信息),直接攻读;然后本身搭建二个MySQL环境,用线上的安顿运行;要精晓许多同班用了重重年MySQL,但是连个简单的MySQL环境都搭不起来。
  • 框架封装了DAL层:能够友善用JDBC尝试去写一个分库分表的简要实现,然后与框架的落到实处举行相比较,看看差距在何地。
  • 用浏览器的工具查看HTTP缓存完成,看看分裂类型的网站,区别门类的财富,具体是怎么着控制缓存的;也能够团结用Python写1个简易的HTTP服务器,模拟再次回到各个HTTP
    Headers来考察浏览器的反响。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

再有好多办法,那里就不一一列举,简单的话,就是要将学到的东西确实试试,才能知道尤其深厚,印第安人有一句谚语:I
hear and I forget. I see and I remember. I do and I understand
,而且“试试”其实能够比较容易,很多时候大家都能够友善入手做。

理所当然,如若能够在实质上中国人民解放军海军事工业程大学业作中使用,效果会更好,究竟实际的线上环境和工作复杂度不是我们写个模拟程序就能够模拟的,但诸如此类的机遇可遇不可求,大多数情况我们还确实只好靠自身模仿,然后等到实在业务要用的时候,能够信手拈来。

3)Teaching

相似的话,经过Learning和Trying,能控制7/10左右,但要真正控制,小编以为必定要形成能够跟外人讲精通。因为在讲的时候,大家既需求将一个知识点系统化,也须求考虑各样细节,那会促使我们尤其考虑和读书。同时,讲出来后看要么听的人方可有不一样的知道,只怕有新的补给,这一定于继续周全了全套文化技能系统。

这么的例子很多,包蕴自小编要好写博客的时候时不时遇上,本来作者觉得温馨早已领会很圆满了,但一写就发现许多点没考虑到;组内培养和锻练的时候也平时来看,有的同学写了PPT,可是讲的时候,我们一问,也许一研究,就会意识众多点还从未讲了解,可能部分点其实是领会错了。写PPT、讲PPT、商讨PPT,那几个流程全体走1遍,基本上对贰个知识点精通就比较完善了。

1.2 安装

把压缩文件拷贝到钦点的服务器上,执行解压命令:

tar -zxvf redis-3.2.10.tar.gz

安装前须求先安装须要的包,yum -y install gcc gcc-c++ tcl,那里设置的都是形似境遇的荒谬所供给安装的库。

安装完后,进入redis-3.2.10目录,执行编写翻译命令:make MALLOC=libc,那样就设置完了

后记

改为技术大牛梦想就算相当美丽好,不过要提交良多,不管是Do more仍旧Do
better照旧Do
exercise,都急需费用时间和生机,这一个进程中恐怕非常的苦逼,也也许很干燥,那里本身想越发强调一下:前面笔者讲的都以局地方法论的事物,但着实起决定意义的,其实依然大家对技术的满面红光和感兴趣!

作者:Ali云云栖社区  来源:天涯论坛

1.3 测试

设置完能够直接开发银行测试一下:

  • 运营服务器,执行下边的一声令下:./src/redis-server redis.conf
  • 伊始客户端,执行上面包车型大巴通令:./src/redis-cli

在控制西安,输入上边发号施令:

set foo bar
get foo

探访是不是正规

图片 2

redis集群安装

依照地点的方法,在每台机器上边都装一下redis。由于redis
cluster集群必须求多个master,假使做三个备份的话,就必要多少个节点。所以笔者这边在三台机械上,安装redis,然后每台机器上运维八个redis即可。一会会说一下,怎么着在一台机器上,运转五个redis。

2.1 安装

首先安装一下ruby,因为集群的脚本是ruby版的

yum -y install ruby ruby-devel rubygems rpm-build

然后实施:

gem install redis

然后把redis-trip.rb拷贝到/usr/local/bin下,那样就足以在别的目录执行redis-trip命令了。

cp src/redis-trip.rb /usr/local/bin

2.2 修改配置

接下去必要基于集群的情状,创建server运营的陈设了,先创设redis_cluster目录,拷贝redis.conf

[root@localnode7 redis-3.2.10]# mkdir redis_cluster
[root@localnode7 redis-3.2.10]# cp redis.conf ./redis_cluster/redis.conf

然后修改redis.conf

[root@localnode7 redis-3.2.10]# vi ./redis_cluster/redis.conf

修改的始末有:

bind 0.0.0.0 //为了别人能访问,这里暴力的监听了所有的地址
port 6379
daemonize yes //redis后台运行
cluster-enabled yes //开启集群  把注释#去掉
cluster-config-file nodes_6379.conf //集群的配置  配置文件首次启动自动生成
cluster-node-timeout 15000 //请求超时  默认15秒,可自行设置
appendonly yes //这里跟redis持久化的机制有关系,有兴趣可以多关注一下redis的日志记录机制 

PS:因为redis.conf布局文件相比大,内容很多。因而大家在改动配置的时候能够接纳vi的快捷键/想要搜索的内容,然后按enter,能够不慢稳定到想要修改的布局上,如若有多个,能够再用n键跳转到下三个十分结果。

2.3 运维服务器

接下去就能够运行redis服务器

[root@localnode7 redis-3.2.10]# ./src/redis-server redis_cluster/redis.conf
[root@localnode7 redis-3.2.10]# ps -aux | grep redis
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     29361  0.0  0.0 130436  2452 ?        Ssl  13:21   0:00 ./src/redis-server 127.0.0.1:6379 [cluster]
root     29381  0.0  0.0 103464  1080 pts/0    R+   13:21   0:00 grep redis
[root@localnode7 redis-3.2.10]#

2.4 单个机器开动八个server

比方想要在一台机械上同时运营多少个redis,能够直接再拷贝一份redis.conf,命名成redis2.conf,修改里面包车型地铁port参数和cluster-config-file参数即可。

譬如上边的布署修改成:

bind 0.0.0.0
port 6380  // <----只有这里发生变化
daemonize yes
cluster-enabled yes
cluster-config-file nodes_6380.conf // <--只有这里发生变化
cluster-node-timeout 15000
appendonly yes

接下来运行的时候,内定为那一个conf即可:

./src/redis-server redis_cluster/redis2.conf

再度询问运维进程:

[root@localnode4 redis-3.2.10]# ps -aux | grep redis
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root      7452  0.0  0.0 131892  2984 ?        Ssl  15:59   0:08 ./src/redis-server 0.0.0.0:6379 [cluster]
root      9337  0.0  0.0 130564  2744 ?        Ssl  16:00   0:08 ./src/redis-server 0.0.0.0:6380 [cluster]
root     32298  0.0  0.0 103464  1084 pts/0    S+   19:27   0:00 grep redis
[root@localnode4 redis-3.2.10]#

2.5 成立集群

注意:

  • 想要搭建集群,至少5个节点,不然执行上面包车型地铁命令会报错的
  • 在开创集群时,只好用ip地址,不可能用主机名,不然会一而再不上…不明白为什么…

实践下边包车型地铁一声令下运营集群创制:

[root@localnode6 redis-3.2.10]# redis-trib.rb  create  --replicas 1 10.10.10.104:6379 10.10.10.106:6379 10.10.10.107:6379 10.10.10.104:6380 10.
10.10.106:6380 10.10.10.107:6380
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
10.10.10.107:6379
10.10.10.106:6379
10.10.10.104:6379
Adding replica 10.10.10.106:6380 to 10.10.10.107:6379
Adding replica 10.10.10.107:6380 to 10.10.10.106:6379
Adding replica 10.10.10.104:6380 to 10.10.10.104:6379
M: e59449112f33dcb2dfad7a1ec32920470f589c32 10.10.10.104:6379
   slots:10923-16383 (5461 slots) master
M: 566762510d6b7b2e1b361a8a8d44e4a9d788a92f 10.10.10.106:6379
   slots:5461-10922 (5462 slots) master
M: 8984e7d3e53ddcec5dd59684f69a1976a4db33ef 10.10.10.107:6379
   slots:0-5460 (5461 slots) master
S: 8e222ceb6ad4a9ca48566bd467b0e1b6573c2fc0 10.10.10.104:6380
   replicates e59449112f33dcb2dfad7a1ec32920470f589c32
S: 0c9e17b5955be559a7edf2853bff02d7415ea72f 10.10.10.106:6380
   replicates 8984e7d3e53ddcec5dd59684f69a1976a4db33ef
S: a8e54df5776b412de65b904ac3928d0d308fdc15 10.10.10.107:6380
   replicates 566762510d6b7b2e1b361a8a8d44e4a9d788a92f
Can 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 cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 10.10.10.104:6379)
M: e59449112f33dcb2dfad7a1ec32920470f589c32 10.10.10.104:6379
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
M: 8984e7d3e53ddcec5dd59684f69a1976a4db33ef 10.10.10.107:6379
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: a8e54df5776b412de65b904ac3928d0d308fdc15 10.10.10.107:6380
   slots: (0 slots) slave
   replicates 566762510d6b7b2e1b361a8a8d44e4a9d788a92f
M: 566762510d6b7b2e1b361a8a8d44e4a9d788a92f 10.10.10.106:6379
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 0c9e17b5955be559a7edf2853bff02d7415ea72f 10.10.10.106:6380
   slots: (0 slots) slave
   replicates 8984e7d3e53ddcec5dd59684f69a1976a4db33ef
S: 8e222ceb6ad4a9ca48566bd467b0e1b6573c2fc0 10.10.10.104:6380
   slots: (0 slots) slave
   replicates e59449112f33dcb2dfad7a1ec32920470f589c32
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

高级中学级需求我们输入叁个yes明确主从的分配。通过日记就足以观望master和slave的三个分配情状,以及slot的分红。那么些slots是跟存款和储蓄的时候hash有关的,即三个字符串先要经过哈希,知道她应该储存到十二分节点上,然后才会蕴藏到相应的server中。当大家用普通的api去询问的时候,要求查不行诚然存款和储蓄的机器,才能读取到数据。当然使用cluster
api就不会有其一题材了。

2.6 集群环境表达

上边大家作证下集群的效应:

第3查看一下集群的情况,然后创设2个key,再换另1个节点登录,看看是不是查询到。

[root@localnode6 redis-3.2.10]# ./src/redis-cli -h 10.10.10.104 -c -p 6379
10.10.10.104:6379> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:86
cluster_stats_messages_received:86
10.10.10.104:6379> get foo
(nil)
10.10.10.104:6379> set foo bar
OK
10.10.10.104:6379> get foo
"bar"
10.10.10.104:6379>
[root@localnode6 redis-3.2.10]# ./src/redis-cli -h 10.10.10.106 -c -p 6379
10.10.10.106:6379> get foo
-> Redirected to slot [12182] located at 10.10.10.104:6379
"bar"
10.10.10.104:6379>

那般大家的集群环境就搭建完了。

万里长征又多走了一步~

设置监察和控制软件

设若用windows办公,依旧有为数不少图形化的工具,能够连接redis的,比如redis desktop:

率先能够去上边网址去下载对应的版本:
https://redisdesktop.com/download

接下来就是无脑安装了,安装完登录到相应的机器上即可。但是貌似是单节点登录,即你看不到集群的数目。恐怕是自身不会用
🙁

图片 3

使用Jedis API访问Redis Cluster

首先在pom.xml中引入Jedis的jar包:

<dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
   <version>2.9.0</version>
</dependency>

接下来测试一下:

public class JedisTest {
    public static void main(String[] args) {
        Jedis redis = new Jedis("10.10.10.104",6379);
        String foo = redis.get("foo");
        System.out.println(foo);
    }
}

使用JedisCluster访问Redis Cluster

参考下那片文章就行,试验过了可用的:
http://www.cnblogs.com/shihaiming/p/5953956.html

参考

1
安装redis平日境遇的标题:http://www.cnblogs.com/HKUI/p/4439575.html
2 make的时候error:
jemalloc/jemalloc.h报错:http://openskill.cn/article/151
3
linux常用目录介绍:http://www.linuxidc.com/Linux/2016-08/134701.htm
4 redis集群环境搭建:http://www.cnblogs.com/wuxl360/p/5920330.html
5 redis安装:http://www.runoob.com/redis/redis-install.html
6 redis官方文书档案:https://redis.io/download
7 redis
client官方文书档案:https://github.com/uglide/RedisDesktopManager
8 redis desktop windows下载:https://redisdesktop.com/download

发表评论

电子邮件地址不会被公开。 必填项已用*标注