redis适合什么场景?

Python013

redis适合什么场景?,第1张

1、缓存。 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多。(推荐:《 Redis视频教程 》)

2、排行榜。 很多网站都有排行榜应用的,如京东的月度销量榜单、商品按时间的上新排行榜等。Redis提供的有序集合数据类构能实现各种复杂的排行榜应用。

3、计数器。 什么是计数器,如电商网站商品的浏览量、视频网站视频的播放数等。为了保证数据实时效,每次浏览都得给+1,并发量高时如果每次都请求数据库操作无疑是种挑战和压力。Redis提供的incr命令来实现计数器功能,内存操作,性能非常好,非常适用于这些计数场景。

4、分布式会话。 集群模式下,在应用不多的情况下一般使用容器自带的session复制功能就能满足,当应用增多相对复杂的系统中,一般都会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务及内存数据库管理。

5、分布式锁。 在很多互联网公司中都使用了分布式技术,分布式技术带来的技术挑战是对同一个资源的并发访问,如全局ID、减库存、秒杀等场景,并发量不大的场景可以使用数据库的悲观锁、乐观锁来实现,但在并发量高的场合中,利用数据库锁来控制资源的并发访问是不太理想的,大大影响了数据库的性能。可以利用Redis的setnx功能来编写分布式的锁,如果设置返回1说明获取锁成功,否则获取锁失败,实际应用中要考虑的细节要更多。

1、关闭cluster全部节点

2、删除所有nodes.conf文件

3、开启全部节点

4、依次flushall

5、重建集群即可

Share the post "Redis3重建Cluster"

例子:

redis集群启动失败案例

部署Redis分布式集群时,出现了如下错误:

moguang@ubsvr13:/opt/redis-unstable/src$ ./redis-trib.rb create 192.168.1.13:6379 192.168.1.15:6380 192.168.1.40:6381>>>Creating cluster

Connecting to node 192.168.1.13:6379: OK

Connecting to node 192.168.1.15:6380: OK

Connecting to node 192.168.1.40:6381: OK>>>Performing hash slots allocation on 3 nodes...

Using 3 masters:192.168.1.40:6381192.168.1.15:6380192.168.1.13:6379M: 225b7f54c67483f71955db78312a90c67941fff0 192.168.1.13:6379

slots:10922-16383 (5462 slots) master

M: bca62c53e7f50d7c83dd418ed23e08fb8a4e9bb5 192.168.1.15:6380

slots:5461-10921 (5461 slots) master

M: 47483c65a705025aab28ee74da210a2dce41bc41 192.168.1.40:6381

slots:0-5460 (5461 slots) master

Can I set the above configuration? (type 'yes' to accept): yes/usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis/client.rb:97:in `call': ERR Slot 16011 is already busy (Redis::CommandError)from /usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis.rb:2432:in `method_missing'from /usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis.rb:37:in `synchronize'from /usr/lib/ruby/1.8/monitor.rb:242:in `mon_synchronize'from /usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis.rb:37:in `synchronize'from /usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis.rb:2431:in `method_missing'from ./redis-trib.rb:203:in `flush_node_config'from ./redis-trib.rb:571:in `flush_nodes_config'from ./redis-trib.rb:570:in `each'from ./redis-trib.rb:570:in `flush_nodes_config'from ./redis-trib.rb:820:in `create_cluster_cmd'from ./redis-trib.rb:1026:in `send'from ./redis-trib.rb:1026经检查,这是由于上一次配置集群失败时留下的配置信息导致的。 只要把redis.conf中定义的 cluster-config-file 所在的文件删除,重新启动redis-server及运行redis-trib即可。

根据下面步骤创建适应业务需求的云数据库Redis版实例。

使用下列方法中任意一种打开购买页:

打开云数据库Redis版产品首页,单击立即购买。

说明 如果尚未登录阿里云账号,单击立即购买后需要先使用阿里云账号和密码登录。

登录Redis管理控制台,单击右上角的创建实例。

设置以下参数。

选择密码设置方式。

立即设置:在下方的输入密码区域设置密码。

稍后设置:创建实例后再修改密码。

设置实例名称、购买数量,如果创建包年包月实例,还需设置时长。

在确认订单页,阅读《云数据库KVStore版服务协议》,确认接受后在服务协议前的选框中单击勾选。

单击去开通。

因为这方面内容较多,这里也写不开那么多内容,所以你可以留言或到我的博客上搜索相关内容,老魏有写过教程,还不止一篇,都挺详细的内容,可以帮助你入门。