阿里云服务器上redis 阿里云的redis

阿里云redis集群数据集中在db0未分散到所有节点问题解决

背景介绍:我们系统使用的缓存服务是付费版的阿里云的redis集群服务,配置是4核,16G。redis的集群结构如下:分为四个节点DB0,DB1,DB2,DB3

成都创新互联是一家集网站建设,芒康企业网站建设,芒康品牌网站建设,网站定制,芒康网站建设报价,网络营销,网络优化,芒康网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

之前的存储方案是存储的商品促销数据,结构是:

KEY FIELD VALUE来存储。其中KEY是一个固定的字符串"zy:prom:wx",FIELD则是商品sku,VALUE是商品促销的具体信息。这种方式导致我们存入缓存服务器的数据一直集中在DB0节点上,在访问量过大时,该节点会在短时间内受到到的访问压力很大,DB0的cpu瞬间达到100%以上,造成服务卡顿甚至不可用。而相比之下DB1,DB2,DB3的节点cpu压力却很小,可以忽略不计。这是为什么?最后询问了阿里的技术,他们说我们的数据存储的方法有误,具体是我们的key设置有误。与阿里的技术对话如下:

所以我们后来改造了方案把key的组成变程了"prom:wx:sku",这样key就会根据sku的不同而不同,增大了key的离散度,这样key通过hash算出来的值,就会不同,使得所有的数据不再存放到同一台节点上,完美解决问题。

修改后的存储分布情况如下图:DB0、DB1、DB2、DB3四个节点数据均匀分布。

对修改前后两天同一时间区间的缓存服务器的cpu压力情况对比:

详解Redis开启远程登录连接

redis默认只能localhost登录,所以需要开启远程登录。

1、将 bind 127.0.0.1 ::1 这一行注释掉。

这里的bind指的是只有指定的网段才能远程访问这个redis。 注释掉后,就没有这个限制了。或者bind 自己所在的网段。

band localhost 只能本机访问,局域网内计算机不能访问。

bind 局域网IP 只能局域网内IP的机器访问, 本地localhost都无法访问。

验证方法:

2、将 protected-mode 要设置成no (默认是设置成yes的, 防止了远程访问,在redis3.2.3版本后)

3、设置远程连接密码

取消注释 requirepass foobared,将 foobared 改成任意密码,用于验证登录。默认是没有密码的就可以访问的,我们这里最好设置一个密码。

4、重启 reids

编辑/etc/sysconfig/iptables,添加

以上只对本机和126.212.173.185开放6379端口,其他ip用telnet是无法连接的。如果访问ip没有限制,就不需要添加-s ip地址了,例如

重新启动防火墙

很明显,没有包含6379端口。然后点击右上的“添加安全组规则” 。填写如下内容即可。 同理,如果准备使用其它端口,务必来添加相应安全规则。

然后确定。再重启redis-server,就可以愉快的运行阿里云服务器上的redis了。o( ̄▽ ̄)d

阿里云服务器连接redis问题

Redis主要用作高可用、缓存场景使用,对于阿里云的Redis产品,为了保障其应用效果,原则上只能在阿里云内网才能连接到阿里云的Redis,你如果是直接租赁的阿里云的Redis,那么你通过公网来访问这个Redis,还需要进行一定的配置,具体可参见阿里云的以下帮助连接:

网页链接

网页链接

为什么阿里云还提供了redismysql的数据库

阿里云还提供了redismysql的数据库的原因如下:

1、redismysql作为用户上云的首选,完全进入社区特性,紧跟社区发布速度,而且做到和社区的PR相关的合并都跟进。

2、积极贡献社区,有Redis全球开发维护团队的5人小组的成员之一,在阿里云,有3个人是在Redis原厂,还有一个在AWS上,是全中国唯一一个进入全球开发小组的成员,对社区版的贡献非常多。

3、作为云厂商,提供Redis相关数据库服务都属于云托管,用户在界面上下单购买Redis服务,拿到Redis数据库,但是对于大型自建Redis客户有局限性。


标题名称:阿里云服务器上redis 阿里云的redis
分享链接:http://pwwzsj.com/article/ddciggc.html