文章分类 -  Redis

摘要:本文主要介绍的内容为通过 Node 操作 Redis-Cluster,如果想要通过 Node 来进行操作的话需要使用到一个 npm 的库,叫做 ioRedis 那么接下来就是废话不多说直接开整。 首先初始化一个 node 项目: npm init --y 安装 ioRedis: npm instal 阅读全文
posted @ 2022-02-13 16:43 BNTang 阅读(385) 评论(0) 推荐(0)
摘要:在开始本文之前首先你得要将Redis-Cluster-搭建环境准备好,因为本文的内容是基于该环境进行演示和介绍的。 利用 Redis 官方提供的 Ruby 脚本安装 Redis cluster,配置并启动 6 台服务器,上面已经介绍过这里直接略过。 下载 Ruby 下载地址:https://ruby 阅读全文
posted @ 2022-02-10 09:57 BNTang 阅读(118) 评论(0) 推荐(0)
摘要:官方地址:https://redis.io/topics/cluster-tutorial 为 Cluster 启动 6 台 Redis 服务器,准备 6 台 Redis 服务器,下载 Redis 服务器:https://github.com/MicrosoftArchive/redis/relea 阅读全文
posted @ 2022-01-25 09:11 BNTang 阅读(57) 评论(0) 推荐(0)
摘要:在 Redis Cluster 必须至少有 6 台服务器 在 Redis Cluster 每一台分片服务器都必须是一个 主从结构 在 Redis Cluster 中每一台主分片服务器都是可读可写的 由于每个分片都是主从复制结构, 所以就保证了数据的 '安全性' 和 '可分流性' 但是 Redis C 阅读全文
posted @ 2021-12-27 21:51 BNTang 阅读(126) 评论(0) 推荐(0)
摘要:虚拟槽哈希 Redis Cluster 采用的是 '虚拟槽哈希' 的方式来分片 在 Redis Cluster 中一共有 0~16383 个虚拟槽, 我们可以把这些槽分配给对应的分片服务器 在存储数据的时候通过 slot = CRC16(key) & 16383 计算出对应数据键的槽值 然后将该值保 阅读全文
posted @ 2021-12-26 20:49 BNTang 阅读(94) 评论(0) 推荐(0)
摘要:一致性哈希 一致性 Hash 算法将整个哈希值的空间组织成一个 0~2(32) 次方的虚拟的圆环 然后再求出分片服务器的 Hash 值, 根据分片服务器的 Hash 值将服务器配置到虚拟的圆环对应的位置 然后再求出需要保存数据键的 Hash 值, 根据求出的值在虚拟的圆环 顺时针 方向上存入对应的分 阅读全文
posted @ 2021-12-26 20:47 BNTang 阅读(169) 评论(0) 推荐(0)
摘要:三种常见的哈希分片 节点取余 一致性哈希 虚拟槽哈希 节点取余 主要采取的手段就是:hash(key) % N | | | 1~100 | | | hash(key)%3 | | | | | | | 3,6,9...99 | | 1,4,7...100 | | 2,5,8...98 | | | | 阅读全文
posted @ 2021-12-26 11:22 BNTang 阅读(89) 评论(0) 推荐(0)
摘要:分布式存储中常见的分片规则 顺序分片 | | | 1~100 | | | | | | | | | | 1~33 | | 34~66 | | 67~100 | | | | | | | 特点: 支持顺序访问 键值和业务相关 可能会出现数据 倾斜 第一点,支持顺序访问 因为数据是有序的,可以按照顺序依次的 阅读全文
posted @ 2021-12-26 11:05 BNTang 阅读(284) 评论(0) 推荐(0)
摘要:已经解决的问题 主从复制 + Redis-Sentinel 解决了 '高可用性'、'数据安全性'、'数据分流' 的问题 但是由于在主从复制中每台服务器保存的都是相同的内容, 所以还没有解决服务器的 容量 问题 如何解决服务器容量问题,通过 Redis Cluster 来解决 Redis Cluste 阅读全文
posted @ 2021-12-26 09:20 BNTang 阅读(52) 评论(0) 推荐(0)
摘要:NodeJS 访问 Redis-Sentinel 使用 Redis-Sentinel 之后,由于主节点可能会发生变化,所以我们不能直接操作主节点 只有 Redis-Sentinel 最清楚当前的主节点是谁, 所以我们应该通过 Redis-Sentinel 来操作主节点 官方地址:https://ww 阅读全文
posted @ 2021-12-25 10:18 BNTang 阅读(405) 评论(0) 推荐(0)
摘要:使用Jedis操作Redis需要导入的jar包如下所示: jedis 常用 API API名称 作用 new Jedis(host, port) 创建jedis对象,参数host是Redis服务器地址,参数port是Redis服务端口 set(key, value) 设置字符串类型的数据 get(k 阅读全文
posted @ 2020-11-02 11:13 BNTang 阅读(257) 评论(0) 推荐(0)
摘要:Redis高可用性 如果所有用户都从同一台Redis服务器上读写数据,那么如果这台Redis服务器宕机了,用户就不能进行读写了 如果我们有多台Redis服务器,并且每台服务器中存储的内容都相同,那么即使有一台服务器宕机了,用户还可以继续使用其它的Redis服务器 以上这种特点,我们就称之为高可用性 阅读全文
posted @ 2020-08-08 23:23 BNTang 阅读(120) 评论(0) 推荐(0)
摘要:Redis数据持久化 默认情况下Redis是将数据保存在内存中的,保存在内存中的数据有一个特点,那就是机器重启之后数据就会丢失 所以为了避免服务器重启死机等问题发生的时候,Redis中保存的数据丢失,Redis提供了数据持久化功能 什么是数据持久化 数据持久化就是将内存中的数据写入到磁盘中 Redi 阅读全文
posted @ 2020-08-08 13:57 BNTang 阅读(107) 评论(0) 推荐(0)
摘要:什么是发布订阅 在发布订阅中有三个角色:发布者(publisher)订阅者(subscriber)频道(channel) 只要发布者将消息发送到对应的频道中,那么所有的订阅者都能收到这个消息,这个就是Redis的发布订阅 🐤现实生活中的发布订阅 张三和李四去商店买鞋,但是最近炒鞋的人比较多,要买的 阅读全文
posted @ 2020-08-08 13:36 BNTang 阅读(86) 评论(0) 推荐(0)
摘要:什么是ZSet ZSet是有序集合,Redis可以把一堆通过权重排序的数据当做一个Value存储起来 Redis-ZSet类型-增删改查 🐤新增 语法:zadd key 权重 value 权重 value zadd names 99 BNTang 77 zs 88 ww 🦄查询 查询指定排名范围 阅读全文
posted @ 2020-08-08 12:51 BNTang 阅读(395) 评论(0) 推荐(0)
摘要:Redis-Set类型-增删改查 集合就是一堆无序的数据,Redis可以把一堆无序的数据当做Value存储起来 集合中不能出现重复的数据 🐤新增 语法:sadd key value1, [value2, ...] sadd names BNTang JonathanTang xhh 🍳查询 返回 阅读全文
posted @ 2020-08-08 11:24 BNTang 阅读(417) 评论(0) 推荐(0)
摘要:Redis-List类型-增删改查 Redis的Value除了可以存储字符串和Hash类型以外,还可以存储List类型 List类型就相当于JavaScript中的数组,可以把整个数组当做一个Value存储起来 List是有序的 ✒增加 从第二个Value开始添加到前一个Value的左边 语法:lp 阅读全文
posted @ 2020-08-07 23:18 BNTang 阅读(184) 评论(0) 推荐(0)
摘要:Redis-Hash类型-增删改查 Redis的Value除了可以存储普通的字符串类型以外, 还可以存储Hash类型,Hash类型就相当于在JS中的对象, 可以把整个对象当做一个Value存储起来 🐤增加 格式:hset key field value hset user name BNTang 阅读全文
posted @ 2020-08-07 16:57 BNTang 阅读(156) 评论(0) 推荐(0)
摘要:默认数据库 默认情况下Redis给我们创建了16个数据库(0~15),如果使用的时候没有明确的选中使用哪个数据库, 那么默认使用第0个 🐤切换数据库 select 1 字符串类型 🥣新增 语法: set key value set name BNTang 🥞查询 语法: get key get 阅读全文
posted @ 2020-08-06 21:58 BNTang 阅读(165) 评论(0) 推荐(0)
摘要:Redis数据类型 Redis是以key-value的形式存储数据的 key无论如何都是字符串类型 Value支持如下的五种数据类型 字符串(String) 哈希(Hash) 列表(list) 无序集合(sets) 有序集合(sorted sets) String字符串 格式: key value 阅读全文
posted @ 2020-08-06 11:30 BNTang 阅读(89) 评论(0) 推荐(0)