码迷,mamicode.com
首页 > 其他好文 > 详细

redis使用总结记录

时间:2018-02-25 19:26:19      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:str   watch   src   可扩展   multi   记录   原子性操作   强一致   redis集群   

1、单线程,单个命令都是原子性操作

2、5种数据类型,string(字符串),hash(哈希),list(列表),set(集合不可重复)及zset(sorted set:有序集合)

3、multi事务与pipeline管道,都是批量执行命令,区别pipeline不是原子操作,

4、事务没有回滚,WATCH 一个或多个key,在事务执行之前,如果key被改动,那么事务将不执行,原子操作,如果事务执行期间报错,不回滚

5、秒杀简单实现:通过list的pop原子操作,防止多卖,重复购买等功能

  库存列表,用户排队列表,已抢列表

  起多个线程循环lpop,lpop原子操作,保证多线程安全,

  从用户排队列表pop一个用户,如果pop成功,判断库存是否还有,判断用户是否已经抢过,再从库存列表pop一个商品,如果成功则取出来(原子操作)

6、排行榜的实现

  set类型本身就有,交集、并集、差集的功能,下面是zset的实现

技术分享图片

 

 技术分享图片

技术分享图片

7、Redis集群的不足

  redis集群无法保证数据强一致性,主从是异步同步

  2)、集群,高可用,可扩展,注意:假设有三个机房,分别是JF-A、JF-B、JF-C,假如JF-A断网的情况(比如光钎被挖断了:just a joke),这种情况需要考虑在JF-B,部署一套所有主节点的slave,因为数据分布在不同的slots 槽位,当一个主节点包括所有的

    slave都挂掉的时候,分布在该主节点的slots的key就无法使用,一共有16384个slots 

8、Redis集群的优点

  实现高可用,可扩展

9、Redis消息队列的不足

  1)、持久化机制,会把所有数据持久化

  2)、没有可靠发布、消费机制

  3)、消费者没有负载均衡

  4)、没有队列监控、流量限制等

10、Redis消息队列的优点

  轻量级,高并发,延迟敏感 可使用在即时数据分析、秒杀计数器、缓存等场景

redis使用总结记录

标签:str   watch   src   可扩展   multi   记录   原子性操作   强一致   redis集群   

原文地址:https://www.cnblogs.com/huali/p/8469718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!