欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis使用笔记

程序员文章站 2022-07-03 14:55:37
1. 数据类型和接口单机模式下,Redis支持以下的数据结构和接口:2. Redis集群Redis集群实现了单机模型功能集合的一个子集,包含所有单个key的功能。Redis 集群中的节点有以下责任:持有键值对数据。记录集群的状态,包括键到正确节点的映射(mapping keys to right nodes)。自动发现其他节点,识别工作不正常的节点,并在有需要时,在从节点中选举出新的主节点。Redis 集群的键空间被分割为 16384 个槽(slot), 集群的最大节点数量也是 1638...

1. 数据类型和接口

单机模式下,Redis支持以下的数据结构和接口:
Redis使用笔记

2. Redis集群

Redis集群实现了单机模型功能集合的一个子集,包含所有单个key的功能。Redis 集群中的节点有以下责任:

  • 持有键值对数据。
  • 记录集群的状态,包括键到正确节点的映射(mapping keys to right nodes)。
  • 自动发现其他节点,识别工作不正常的节点,并在有需要时,在从节点中选举出新的主节点。

Redis 集群的键空间被分割为 16384 个槽(slot), 集群的最大节点数量也是 16384 个。每个主节点都负责处理 16384 个哈希槽的其中一部分。以下是负责将键映射到槽的算法:

HASH_SLOT = CRC16(key) mod 16384

集群的容错功能是通过使用主节点(master)和从节点(slave)两种角色(role)的节点(node)来实现的:

  • 主节点和从节点使用完全相同的服务器实现, 它们的功能(functionally)也完全一样, 但从节点通常仅用于替换失效的主节点,也就是所谓的冷备份。
  • 不过, 如果不需要保证“先写入,后读取”操作的一致性(read-after-write consistency), 那么可以使用从节点来执行只读查询。

客户端可以*地向集群中的任何一个节点发送命令请求, 并可以在有需要时, 根据转向错误所提供的信息, 将命令转发至正确的节点, 所以在理论上来说, 客户端是无须保存集群状态信息的。

3.CAP分析

对redis集群进行CAP分析,有集群的实现方式,不难发现

  1. 对Redis集群的读写操作,都由负责给定key的节点处理,redis的单节点是单线程处理的,所以是满足强一致性C的。
  2. 某个主节点失效的情况下,由此主节点处理的key的读写会返回失败。所以是不满足可用性的A。
  3. Redis可以在部分节点失效的情况下,继续提供服务,所以是满足分区容错性P的。

可以看出Redis是比较典型的CP型分布式系统。

4. 高效指南

SCAN命令

SCAN 命令及其相关的 SCAN 命令、 HSCAN 命令和 ZSCAN 命令都用于增量地迭代(incrementally iterate)一集元素(a collection of elements):

  • SCAN 命令用于迭代当前数据库中的数据库键。
  • SSCAN 命令用于迭代集合键中的元素。
  • HSCAN 命令用于迭代哈希键中的键值对。
  • ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)。

以上列出的四个命令都支持增量式迭代, 它们每次执行都只会返回少量元素, 所以这些命令可以用于生产环境, 而不会出现像KEYS命令、SMEMBERS 命令带来的问题 —— 当 KEYS 命令被用于处理一个大的数据库时, 又或者 SMEMBERS 命令被用于处理一个大的集合键时, 它们可能会阻塞服务器达数秒之久。

本文地址:https://blog.csdn.net/gaofeipaopaotang/article/details/107396962