摘要: 有 A,B,C 三个节点的集群,在没有复制模型的情况下,如果节点 B 失败了, 那么整个集群就会以为缺少 5501-11000 这个范围的槽而不可用。 阅读全文
posted @ 2020-07-14 22:25 咔啡 阅读(1042) 评论(0) 推荐(0)
摘要: 1、删除和更新也都是写操作,但是 Elasticsearch 中的文档是不可变的,因此不 能被删除或者改动以展示其变更; 2、磁盘上的每个段都有一个相应的.del 文件。当删除请求发送后,文档并没有真 的被删除,而是在.del 文件中被标记为删除。该文档依然能匹配查询,但是会在 结果中被过滤掉。当段 阅读全文
posted @ 2020-07-14 20:50 咔啡 阅读(670) 评论(0) 推荐(0)
摘要: 1、Master 最好不要写内存快照,如果 Master 写内存快照,save 命令调度 rdbSave 函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性 暂停服务 2、如果数据比较重要,某个 Slave 开启 AOF 备份数据,策略设置为每秒同步一 3、为了主从复制的速度和连 阅读全文
posted @ 2020-07-14 20:02 咔啡 阅读(632) 评论(0) 推荐(0)
摘要: 如果大量的 key 过期时间设置的过于集中,到过期的那个时间点,redis 可能 会出现短暂的卡顿现象。一般需要在时间上加一个随机值,使得过期时间分散一些。 阅读全文
posted @ 2020-07-14 18:33 咔啡 阅读(1089) 评论(0) 推荐(0)
摘要: synchronized 是和 if、else、for、while 一样的关键字,ReentrantLock 是类, 这是二者的本质区别。既然 ReentrantLock 是类,那么它就提供了比 synchronized 更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的 类变量,Reent 阅读全文
posted @ 2020-07-14 18:27 咔啡 阅读(192) 评论(0) 推荐(0)
摘要: Redisson、Jedis、lettuce 等等,官方推荐使用 Redisson。 阅读全文
posted @ 2020-07-14 16:55 咔啡 阅读(2492) 评论(0) 推荐(0)
摘要: Memcached 最大的好处就是它带来了极佳的水平可扩展性,特别是在一个巨大的 系统中。由于客户端自己做了一次哈希,那么我们很容易增加大量 memcached 到集群中。memcached 之间没有相互通信,因此不会增加 memcached 的负载; 没有多播协议,不会网络通信量爆炸(implod 阅读全文
posted @ 2020-07-14 16:53 咔啡 阅读(441) 评论(0) 推荐(0)
摘要: 所有的被发送到 memcached 的单个命令是完全原子的。如果您针对同一份数据 同时发送了一个 set 命令和一个 get 命令,它们不会影响对方。它们将被串行化、 先后执行。即使在多线程模式,所有的命令都是原子的,除非程序有 bug:) 命令序列不是原子的。如果您通过 get 命令获取了一个 i 阅读全文
posted @ 2020-07-14 16:51 咔啡 阅读(207) 评论(0) 推荐(0)
摘要: 为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所 以集群使用了主从复制模型,每个节点都会有 N-1 个复制品. 阅读全文
posted @ 2020-07-14 16:48 咔啡 阅读(726) 评论(0) 推荐(0)
摘要: 一个客户端运行了新的命令,添加了新的数据。Redi 检查内存使用情况,如 果大于 maxmemory 的限制, 则根据设定好的策略进行回收。一个新的命令被执 行,等等。所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地 回收回到边界以下。如果一个命令的结果导致大量内存被使用(例如很大的集合 阅读全文
posted @ 2020-07-14 16:31 咔啡 阅读(934) 评论(0) 推荐(0)
摘要: Redis 是单进程单线程的,redis 利用队列技术将并发访问变为串行访问,消 除了传统数据库串行控制的开销。 阅读全文
posted @ 2020-07-14 16:19 咔啡 阅读(550) 评论(0) 推荐(1)
摘要: 先拿 setnx 来争抢锁,抢到之后,再用 expire 给锁加一个过期时间防止锁忘记了 释放。 这时候对方会告诉你说你回答得不错,然后接着问如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了,那会怎么样? 这时候你要给予惊讶的反馈:唉,是喔,这个锁就永远得不到释 阅读全文
posted @ 2020-07-14 16:11 咔啡 阅读(310) 评论(0) 推荐(0)
摘要: BLOB 是一个二进制对象,可以容纳可变数量的数据。TEXT 是一个不区分大小写 的 BLOB。 BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小 写,对 TEXT 值不区分大小写。 阅读全文
posted @ 2020-07-14 15:59 咔啡 阅读(533) 评论(0) 推荐(0)
摘要: 虽然 WeakReference 与 SoftReference 都有利于提高 GC 和 内存的效率, 但是 WeakReference ,一旦失去最后一个强引用,就会被 GC 回收,而软引用 虽然不能阻止被回收,但是可以延迟到 JVM 内存不足的时候。 阅读全文
posted @ 2020-07-14 15:51 咔啡 阅读(1272) 评论(0) 推荐(0)
摘要: Jedis 是 Redis 的 Java 实现的客户端,其 API 提供了比较全面的 Redis 命令 的支持;Redisson 实现了分布式和可扩展的 Java 数据结构,和 Jedis 相比,功能 较为简单,不支持字符串操作,不支持排序、事务、管道、分区等 Redis 特性。 Redisson 阅读全文
posted @ 2020-07-14 15:35 咔啡 阅读(2023) 评论(0) 推荐(0)
摘要: MySQL 服务器通过权限表来控制用户对数据库的访问,权限表存放在 MySQL 数 据库里,由 MySQL_install_db 脚本初始化。这些权限表分别 user,db,table_priv, columns_priv 和 host。 阅读全文
posted @ 2020-07-14 14:33 咔啡 阅读(907) 评论(0) 推荐(0)
摘要: Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用, 但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。 阅读全文
posted @ 2020-07-14 14:31 咔啡 阅读(667) 评论(0) 推荐(0)
摘要: 共有 5 种类型的表格: 1、MyISAM 2、Heap 3、Merge 4、INNODB 5、ISAM 阅读全文
posted @ 2020-07-14 14:23 咔啡 阅读(1673) 评论(0) 推荐(1)
摘要: 这个问题与前面的类似,适配器模式和代理模式的区别在于他们的意图不同。由 于适配器模式和代理模式都是封装真正执行动作的类,因此结构是一致的,但是 适配器模式用于接口之间的转换,而代理模式则是增加一个额外的中间层,以便 支持分配、控制或智能访问。 阅读全文
posted @ 2020-07-14 14:14 咔啡 阅读(461) 评论(0) 推荐(0)
摘要: %对应于 0 个或更多字符,_只是 LIKE 语句中的一个字符。 如何在 Unix 和 MySQL 时间戳之间进行转换? UNIX_TIMESTAMP 是从 MySQL 时间戳转换为 Unix 时间戳的命令 FROM_UNIXTIME 是从 Unix 时间戳转换为 MySQL 时间戳的命令 阅读全文
posted @ 2020-07-14 13:39 咔啡 阅读(1865) 评论(0) 推荐(0)