上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 49 下一页

2021年9月29日

Redis - 一致性哈希(Consistent Hashing Algorithm)

摘要: 总结 1. 为什么需要一致性哈希?传统的取模操作不行么? 一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多cahce server上的问题。它可以取代传统 阅读全文

posted @ 2021-09-29 21:58 frank_cui 阅读(1078) 评论(0) 推荐(0)

Redis - 为什么一致性哈希值空间是2的32?

摘要: 因为一致性hash算法是来做服务器的负载均衡,而服务器的IP地址是32位,所以是2^32-1次方的数值空间 阅读全文

posted @ 2021-09-29 21:39 frank_cui 阅读(712) 评论(0) 推荐(1)

Redis - 数据分区方式:逻辑拆分 vs 哈希分区 vs 顺序分区

摘要: 总结 分布式数据库首先要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每个节点负责整体数据的一个子集。 数据分布有三种方式: 逻辑拆分 哈希分区 固定取模分区 一致性哈希 虚拟槽分区 顺序分区 一、逻辑拆分 逻辑上能拆分,比如 Redis 中的 M1 节点 存储 A服 阅读全文

posted @ 2021-09-29 18:51 frank_cui 阅读(402) 评论(0) 推荐(1)

Redis - 如何设置密码

摘要: 一、通过配置文件 Redis.conf,重启生效 通过配置文件 Redis.conf详解 ,修改 requirepass 属性,重启才有效. 二、通过命令设置密码,无需重启 config set requirepass 123456 指令设置密码为 123456,无需重启 auth 123456 使 阅读全文

posted @ 2021-09-29 16:36 frank_cui 阅读(125) 评论(0) 推荐(0)

Redis - Redis集群

摘要: 一、Redis为什么需要集群? 1.1 Redis单实例的缺陷 存在容量有限,流量压力上限的问题。 单点故障问题。一旦唯一的实例宕机,数据丢失。 即使Redis单点故障,可以通过主从复制replication,和自动故障转移sentinel哨兵机制来解决。但Redis单Master实例提供读写服务, 阅读全文

posted @ 2021-09-29 15:05 frank_cui 阅读(45) 评论(0) 推荐(0)

Redis - Redis“主从节点”的同步机制

摘要: 2.8 版以前 - 通过同步(sync)和指令传播(command propagate) Redis 通过同步(sync)和指令传播(command propagate)两个操作完成同步 同步(sync):将从节点的数据库状态更新至与主节点的数据库状态一致 从节点向主节点发送 SYNC 指令 收到 阅读全文

posted @ 2021-09-29 14:58 frank_cui 阅读(591) 评论(0) 推荐(0)

Redis - 过期键的删除策略有哪些?

摘要: 参考答案 定时删除:在设置键的过期时间的同时,创建一个定时器,达到过期时间,执行键的删除操作 惰性删除:不主动删除过期键,从键空间中获取键时,都检查取得的键是否过期,过期则删除;没过期则返回 定期删除:每隔一段时间对数据库进行一次检查,删除里面的过期键。删除多少过期键、检查多少个数据库,由算法决定。 阅读全文

posted @ 2021-09-29 14:45 frank_cui 阅读(54) 评论(0) 推荐(0)

Redis - 使用过程中的注意事项?

摘要: 参考答案 主库压力很大,可以考虑读写分离 Master 最好不要做持久化工作,如 RDB 内存快照和 AOF 日志文件。(Master 写内存快照,save 命令调度 rdbSave 函数,会阻塞主线程,文件较大时会间断性暂停服务;AOF 文件过大会影响 Master 重启的恢复速度) 如果数据比较 阅读全文

posted @ 2021-09-29 14:38 frank_cui 阅读(52) 评论(0) 推荐(0)

2021年9月26日

Redis - Redis 和 Memecache 有什么区别?

摘要: 数据结构:Redis 支持 5 种数据结构;Memcached 只支持字符串 性能对比:单核小数据量存储 Redis 比 Memcached 快;大数据存储 Redis 稍逊 持久化:Redis 支持持久化;Memecached 数据都在内存之中 线程模型:Redis 使用单线程模型,基于非阻塞的 阅读全文

posted @ 2021-09-26 23:18 frank_cui 阅读(162) 评论(0) 推荐(0)

Redis - Redis有哪些优缺点?

摘要: 优点: 性能极高,能到 100000 次/s 读写速度 支持数据的持久化,对数据的更新采用Copy-on-write技术,可以异步地保存到磁盘上 丰富的数据类型,String(字符串)、List(列表)、Hash(字典)、Set(集合)、Sorted Set(有序集合) 原子性:Redis 的所有操 阅读全文

posted @ 2021-09-26 18:00 frank_cui 阅读(290) 评论(0) 推荐(0)

2021年9月25日

Transaction - 分布式事务六种解决方案

摘要: 阅读注意 本文里所知的“分布式事务”,与另一篇文章 Transaction - 事务分类总结,所指的范围不一样。请以 Transaction - 事务分类总结 为准,本文仅供参考。 总结 可以看出 2PC 和 3PC 是一种强一致性事务,不过还是有数据不一致,阻塞等风险,而且只能用在数据库层面。 而 阅读全文

posted @ 2021-09-25 18:05 frank_cui 阅读(307) 评论(0) 推荐(0)

2021年9月24日

Sentinel - 常见流量控制算法

摘要: 一、计数器(固定窗口)算法 在指定周期内累加访问次数,当访问次数达到设定的阈值时,触发限流策略,当进入下一个时间周期时进行访问次数的清零。 限定每一分钟能够处理的总的请求数为100,在第一个一分钟内,一共请求了60次。接着到第二个一分钟,counter又从0开始计数,在一分半钟时,已经达到了最大限流 阅读全文

posted @ 2021-09-24 22:58 frank_cui 阅读(894) 评论(0) 推荐(0)

2021年9月22日

Archi - 设计高并发的交易系统,要注意什么?

摘要: 总结 框架图,请参考:https://www.cnblogs.com/frankcui/p/15073237.html 权限控制 不同的交易员,能看到的数据是不同的。因此要构建permission权限控制 并发访问 threadlocal操作 sychronized 缓存 redis 数据访问 主从 阅读全文

posted @ 2021-09-22 23:27 frank_cui 阅读(124) 评论(0) 推荐(0)

2021年9月20日

Redis - 淘汰策略有哪些?

摘要: 默认: noenviction:Redis 的默认策略,不回收数据,当达到最大内存时,新增数据返回 error volatile 是对已设置过期时间的数据集淘汰数据: volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中,使用LRU算法淘汰最近最少使用的数 阅读全文

posted @ 2021-09-20 16:35 frank_cui 阅读(378) 评论(0) 推荐(0)

Redis - LRU原理 + Redis的LRU实现

摘要: 总结 1.Redis的LRU 实现思路 最初思路:随机选三个Key,把idle time(距离最后一次被命令程序访问的时间)最大的那个Key移除。后来,把3改成可配置的一个参数,默认为N=5:maxmemory-samples 5。该方法虽简单有效,但它还是有缺点的:每次随机选择的时候,并没有利用历 阅读全文

posted @ 2021-09-20 16:34 frank_cui 阅读(3632) 评论(0) 推荐(3)

设计模式 - 代理模式 和 装饰模式 有什么区别?

摘要: 总结 1.装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。 2.换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。并且,当我们使用装饰器模 式的时候,我们 阅读全文

posted @ 2021-09-20 14:57 frank_cui 阅读(333) 评论(0) 推荐(0)

2021年9月19日

MySQL - 为什么索引会有“最左前缀匹配原则”?

摘要: 总结 由于联合索引构建存储方式(InnoDB联合索引的数据结构是什么?)是根据第一个索引列“单调递增”排序,如果第一列相等则再根据第二列单调递增排序,依次类推。。。也就是说,对于(b,c,d)联合索引来说,相当于创建了(b)、(b、c)(b、c、d)三个索引 索引的第一列也就是b列可以说是从左到右单 阅读全文

posted @ 2021-09-19 18:29 frank_cui 阅读(856) 评论(0) 推荐(0)

MySQL - InnoDB联合索引的数据结构是什么?

摘要: 总结 对于联合索引来说只不过比单值索引多了几列。 联合索引的所有索引列都出现在索引树上,并依次顺序比较几个列的大小。 InnoDB引擎会首先根据第一个索引列“单调递增”排序,如果第一列相等则再根据第二列排序,依次类推. 必看例子: 数据表T1有字段a,b,c,d,e,其中a是主键,除e为varcha 阅读全文

posted @ 2021-09-19 18:05 frank_cui 阅读(1740) 评论(0) 推荐(1)

MySQL - 为什么辅助索引的叶子节点data域存储的是主键值?

摘要: 为了一致性和节省存储空间: 已经维护了一套主键索引+数据的B+Tree结构,如果再有其他的非主键索引的话,索引的叶子节点存储的是主键,这是为了节省空间,因为继续存数据的话,那就会导致一份数据存了多份,空间占用就会翻倍。 另一方面也是一致性的考虑,都通过主键索引来找到最终的数据,避免维护多份数据导致不 阅读全文

posted @ 2021-09-19 17:43 frank_cui 阅读(595) 评论(0) 推荐(0)

MySQL - 为什么InnoDB表必须有主键?并且推荐使用整型的自增主键?

摘要: 在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。 为什么InnoDB表必须有主键? Mysql索引设计如此....mysql设计的就是innoDB把你的数据和主键索引用B+Tree来组织的,没有主键他的数据就没有一个结构来存储。即:主键索引就是数据文件本 阅读全文

posted @ 2021-09-19 17:28 frank_cui 阅读(854) 评论(0) 推荐(0)

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 49 下一页

导航

levels of contents