摘要:
虽然通常每个子线程只需要完成自己的任务,但是有时我们希望多个线程一起工作来完成一个任务,这就涉及到线程间通信。 关于线程间通信本文涉及到的方法和类包括:thread.join()、object.wait()、object.notify()、CountdownLatch、CyclicBarrier、F 阅读全文
摘要:
0、为什么需要主从复制? 1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。 2、做数据的热备 3、架构的扩展。业务量越来越 阅读全文
摘要:
一、概述 Redis的高并发和快简单可以归结为一下几点: 1.Redis是基于内存的; 2.Redis是单线程的; 3.Redis使用多路复用技术。 4.高效的数据结构 但具体怎么做的呢,下面来详细看下每一点的具体实现吧~ 二、基于内存实现 Redis 是基于内存的数据库,那不可避免的就要与磁盘数据 阅读全文
摘要:
一、概述 Redis作为内存型的数据库,虽然很快,依然有着很大的隐患,一旦服务器宕机重启,内存中数据还会存在吗? 很容易想到的一个方案是从后台数据恢复这些数据,如果数据量很小,这倒是一个可行的方案。但是如果数据量过大,频繁的从后台数据库访问数据,压力很大;另外一方面恢复数据的时间极慢。 对于Redi 阅读全文
摘要:
简单动态字符串 导读 Redis 只会使用 C 字符串作为字面量, 在大多数情况下, Redis 使用 SDS (Simple Dynamic String,简单动态字符串)作为字符串表示。 比起 C 字符串, SDS 具有以下优点: 常数复杂度获取字符串长度。 杜绝缓冲区溢出。 减少修改字符串长度 阅读全文
摘要:
Redis Cluster 是社区版推出的 Redis 分布式集群解决方案,主要解决 Redis 分布式方面的需求,比如,当遇到单机内存,并发和流量等瓶颈的时候,Redis Cluster 能起到很好的负载均衡的目的。Redis Cluster 集群节点最小配置 6 个节点以上(3 主 3 从),其 阅读全文
摘要:
集群分片模式 如果Redis只用复制功能做主从,那么当数据量巨大的情况下,单机情况下可能已经承受不下一份数据,更不用说是主从都要各自保存一份完整的数据。在这种情况下,数据分片是一个非常好的解决办法。 Redis的Cluster正是用于解决该问题。它主要提供两个功能: 自动对数据分片,落到各个节点上 阅读全文
摘要:
为什么集群? 通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢?首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资 阅读全文
摘要:
编写顺序 SELECT DISTINCT <select list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_lis 阅读全文
摘要:
锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。 在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从 阅读全文