架构

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

redis 初识的更多相关文章

  1. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

  2. Redis初识

    安装与使用 Redis-x64-3.2.100:服务端 + 客户端 redis-3.2.5:源代码 Redis Desktop Manager - v0.8.8:客户端(基于Qt5的跨平台Redis桌 ...

  3. 01.redis初识

    Redis学习: redis是什么? Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 不过Redis在生产环境中使用最多的功能是缓存系统.至于其 ...

  4. C#Redis初识

    前面博客写了nginx负载均衡,大致了解了下nginx,不过这都是2016年的,2017年的计划也列了,重要的是执行,最近在看RabbitMQ和redis,由于今天和小伙伴们一起去聚餐了,回来的比较晚 ...

  5. redis初识及基本操作

    一.redis介绍: 1.Redis是什么: REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key-Value) ...

  6. Redis初识01 (简介、安装、使用)

    一.Reids介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(s ...

  7. 在python中使用redis 初识

    一.下载redis模块 pip3 install -i https://pypi.douban.com/simple redis 二.创建单连接 import redis # 创建链接 conn = ...

  8. redis 初识与安装

    一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的values类型相对更多,包括字符串.列表.哈希散列表.集合,有序集合. 这些数据类型都支持pus ...

  9. Redis 入门到分布式 (一)Redis初识

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Redis特性目录 Redis的特性: 速度快 持久化 多种数据结构 支持多种编辑语言 功能丰富 简 ...

随机推荐

  1. html和js,外部js 的下载执行顺序

    当用户开始访问,首先下载html资源和外部js资源,在chrome中显示的是html先下载,然后下载外部js,外部js的下载顺序安引用顺序,但是下载到达情况则视情况而定,接着才是图片和其他资源,但是要 ...

  2. 我们的java基础到底有多差 一个视频引发的感想

    以此文来警示自己. 大三要结束了. 我从大一下学期开始接触java,两年半了,期间有很努力的自学,也参与了一下项目,满以为自己的java基础应该不错,但今天在网上看了一个视频才发现自己学的是多么的&q ...

  3. CSS Sprites的优缺点

    CSS Sprites在国内很多人叫css 精灵,是一种网页图片应用处理方式.就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的"background-image",&q ...

  4. java编程思想-第13章-某些练习题

    . 匹配任意一个字符 * 表示匹配0个或多个前面这个字符 + 表示1个或多个前面这个字符 ? 表示0个或1个前面这个字符 ^ 表示一行的开始 ^[a-zA-Z] :表示开头是a-z或者A-Z [^0- ...

  5. go语言nsq源码解读一-基本介绍

    简单介绍一下nsq. 参考 http://feilong.me/2013/05/nsq-realtime-message-processing-system 的介绍:NSQ是由知名短链接服务商bitl ...

  6. BZOJ_1342_[Baltic2007]Sound静音问题_单调队列

    BZOJ_1342_[Baltic2007]Sound静音问题_单调队列 题意: 给出n个数,求∑[ max{a[i]~a[i+m-1]} - min{a[i]~a[i+m-1]} <= c ] ...

  7. BZOJ_1697_[Usaco2007 Feb]Cow Sorting牛排序_贪心

    BZOJ_1697_[Usaco2007 Feb]Cow Sorting牛排序_贪心 Description 农夫JOHN准备把他的 N(1 <= N <= 10,000)头牛排队以便于行 ...

  8. BZOJ_3670_[Noi2014]动物园_KMP

    BZOJ_3670_[Noi2014]动物园_KMP Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的 ...

  9. BZOJ_1212_[HNOI2004]L语言_哈希

    BZOJ_1212_[HNOI2004]L语言_哈希 Description 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写 ...

  10. 跟我一起学opencv 第四课之图像的基本操作

    1.图像是由像素组成的,所以修改了像素就可以实现图像的改变. 2先看灰度图像(单通道): *****2.获取灰度图像的像素值使用:  int gray = gray_src.at<uchar&g ...