首页 > 数据库 >Redis数据结构存储系统:第四章:底层实现原理

Redis数据结构存储系统:第四章:底层实现原理

时间:2022-12-29 21:12:09浏览次数:67  
标签:哈希 存储系统 Redis 集群 16384 key 数据结构 节点

应用场景:

设置限制的优惠活动的信息;
一些及时需要更新的数据,积分排行榜;
手机验证码的时间;
限制网站访客访问频率;

Redis数据结构存储系统:第四章:底层实现原理

Redis 以什么形式存储数据? 什么是hash槽?

String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合)

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽。这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集群不可用的状态。当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了;

使用RedisTemplate 进行缓存

 

 

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120481903

标签:哈希,存储系统,Redis,集群,16384,key,数据结构,节点
From: https://www.cnblogs.com/wangchuanxinshi/p/17013546.html

相关文章

  • 数据结构 玩转数据结构 7-6 基于链表的映射实现
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13708 1重点关注1.1使用链表实现映射Map详见3.1用链表实现映射Map  2......
  • Redis数据结构存储系统:第三章:Redis在项目中如何使用?
    简单介绍一个redis?redis是一个key-value类型的非关系型数据库,基于内存也可持久化的数据库,相对于关系型数据库(数据主要存在硬盘中),性能高,因此我们一般用redis来做缓存使用;并......
  • 面试笔记1-redis
    1、什么是RDB?RDB实际上是Redis的一种数据持久化机制。它每隔一段时间就会把内存中的数据写入到磁盘中的临时文件,作为快照,宕机重启之后,就会把rdb文件读取到内存中去,就可以......
  • 【数据结构】树的概念与结构 | 树的几种常见表示方法
    前言:本章将正式开启数据结构中“树”部分的讲解,本章将介绍树的概念和结构,以及树的表示方法。0x00树的概念......
  • redis使用示例
    packagecom.atguigu.gulimall.product;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.TypeReference;importorg.junit.jupiter.api.Test;importorg.ju......
  • Redis数据结构存储系统:第二章:如何使用
    Redis与SpringBoot整合:第一步:在项目中引入redis.clientsjedis第二步:将连接池和配置类创建好RedisUtil:importredis.clients.jedis.Jedis;importredis.clients.j......
  • 随笔(十三)『docker安装redis』
    1、进入虚拟机vagrantssh2、切换为rootsuroot3、拉取redis镜像dockerpullredis4、创建实体并启动4.1)mkdir-p/mydata/redis/conf4.2)touch/mydata/redis......
  • C++数据结构01--顺序线性表实现
    今天正好又是很闲,就简单实现一下数据结构里面的顺序线性表玩一下,后面有时间再慢慢把后面几种数据结构实现一下玩一下。顺序线性表,就是在连续内存中元素按内存地址顺序排列的......
  • C++数据结构03--静态链式线性表的实现
    头文件://静态链表头文件#include"stdafx.h"usingnamespacestd;#defineMAXSIZE250typedefintElemType;typedefstruct{ElemTypedata;intcur;//存在next的指针......
  • C++数据结构02--链式线性表(单链表的实现)
    头文件://实现链式线性表#include"stdafx.h"usingnamespacestd;typedefintDataType;//将数据类型设为int类型/或者其他类型均可//链式结构体定义typedefstructNode{......