架构

sharding

redis 集群是主从式架构,数据分片是根据hash slot(哈希槽来分布)

总共有16384个哈希槽,所以理论上来说,集群的最大节点(master)

数量是16384个。一般推荐最大节点数量在1000个左右。

数据到shard的映射是根据传过来的key,CRC16生成值,然后对16834个哈希槽取模。目的就是数据能够均匀分布。

为。

没有mongo cluster 中mongos 角色。所有节点既要存储数据,也要存储

节点配置信息,比如某个hash槽的值对应在哪个节点上。客户端通信可以与

任意一个master节点连接。

redis是单线程,单进程的。所以可以拿来做分布式锁

一致性

不是强一致性,因为从master-slave的复制是异步的

持久化

RDB(redis database) 机制

隔一段时间去做一次copy,从内存到disk

AOF(append only file):

logs: 所有的写操作都记录下logs

需要将log写到磁盘中,因此代价比较大

SAVE:

强制redis server 去创建RDB snapshot

数据类型

字符串(Strings)

最多可以储存512字节的内容

列表(Lists)

按照插入顺序排序

LPUSH list a

列表最多包含2^32 - 1个元素

集合(Sets)

无序字符串合集,最多包含2^32 - 1个元素

有序集合(Sorted sets)

哈希(Hashed)

key,value

HSET username:a

消息机制

  1. pub/sub

很简单,就是定义一个channel,然后将数据publish过去。

需要监听的客户端subscribe这个channel。就可以在onMessage方法中

处理监听到的消息了。

缺点就是一条消息会被多个监听的客户端都监听到,这样在水平扩展的应用服务中会有问题。

  1. 列表,push pop

将数据push到链表中,然后pop出来,使用阻塞式BLPOP

最新文章

  1. 思考JavaScript异常如何转为知识库?
  2. JS如何禁止别人查看网站源码
  3. Angular 2 要来了,Wijmo 已准备好迎接
  4. 事件函数SetEvent、PulseEvent与WaitForSingleObject详解
  5. 《Genesis-3D开源游戏引擎--横版格斗游戏制作教程01: 资源导入》
  6. [转] nginx 开启gzip压缩--字符串压缩比率很牛叉
  7. js点击button按钮跳转到另一个新页面
  8. Windows10微软在线账户与本地账户的切换方法
  9. css3 新属性
  10. CentOS下的yum命令
  11. Chris Richardson微服务翻译:微服务之事件驱动的数据管理
  12. bzoj3435 [Wc2014]紫荆花之恋
  13. Vue插槽的深入理解和应用
  14. iframe边距问题解决
  15. highChart 缺值-曲线断开问题
  16. Office处理
  17. JQuery控制radio选中和不选中方法总结
  18. 使用lua graphql 模块让openresty 支持graphql api
  19. 【数组】Remove Duplicates from Sorted Array II
  20. Open edX 学习、开发、运维相关链接整理

热门文章

  1. javascript 原型机制
  2. Python3.6下scrapy框架的安装
  3. 【ShoppingWebCrawler】-基于Webkit内核的爬虫蜘蛛引擎概述
  4. bzoj 1064 假面舞会 图论??+dfs
  5. SAP GUI个性化设置
  6. 深入理解数据库磁盘存储(Disk Storage)
  7. Netty实现高性能IOT服务器(Groza)之精尽代码篇中
  8. 【STM32H7教程】第12章 STM32H7的HAL库框架设计学习
  9. nuxt Window 或 Document未定义解决方案
  10. Nginx 安装详细(一)