摘要: 字节缓冲区 字节顺序-大端-小端 ByteOrder.nativeOrder().toString() 获取当前处理器的字节顺序 直接缓冲区 ByteBuffer.allocateDirect() 创建所需容量的直接缓冲区 isDirect() 是否直接缓冲区 只有字节类型数据才可以创建直接缓冲区, 阅读全文
posted @ 2022-05-11 19:18 ccme 阅读(45) 评论(0) 推荐(0)
摘要: TCP粘包/拆包 应用程序写入字节大于Socket缓冲区大小就会触发拆包操作。 TCP是一种流协议,他无法理解上层发来的字节含义,只根据自身容量就行拆分、组合操作。 Netty是如何解决TCP粘包问题的 粘包/拆包问题复现 client端发送100次消息 server端接收消息并使用一个Atomic 阅读全文
posted @ 2022-03-05 10:07 ccme 阅读(33) 评论(0) 推荐(0)
摘要: 还是有很多问题的,希望以后的自己能够作出解答。 纵向扩展 好处: 简单直接 坏处: 单机数据过大,fork时可能阻塞主线程过长,成本 横向扩展 需要解决的问题就是数据放在哪里如何分布,客户端怎么知道访问哪里 Redis提供了Redis Cluster方案 如下: 采用Hash槽处理集群与数据的映射关 阅读全文
posted @ 2021-12-16 22:51 ccme 阅读(73) 评论(0) 推荐(0)
摘要: 主从同步 Redis采用读写分离的方式,首先封住数据来源只有一个。 (一致性) 第一次同步 slave 通过命令replicaof 127.0.0.1 6379与master建立联系 链接建立后slave会发送psync ? -1获取拉取数据范围(?: 第一次链接不知道master的runId(每台 阅读全文
posted @ 2021-12-16 16:44 ccme 阅读(162) 评论(0) 推荐(0)
摘要: AOF Redis数据会丢失么? redis提供三种策略来保证CAP Always: 每次写操作都写入文件。可靠性高数据不丢失。每次落盘带来的性能影响大。 EvertSec: 每秒写入一次。 宕机可能丢失一秒数据 NO: 将操作写入到操作系统文件缓存区。 无法得知什么时候落盘,数据丢失可能很大,但是 阅读全文
posted @ 2021-12-15 20:18 ccme 阅读(44) 评论(0) 推荐(0)
摘要: Redis为什么使用单线程 单线程无需关注共享数据问题,实现复杂度降低。 Redis单线程指的是网络IO与数据读写采用一个线程,Redis本身是多个线程的。 Redis为什么单线程还这么快 依赖于高效的数据结构与IO模型 Redis采用IO多路复用模型,采用异步方式处理IO将建立Socke连接,接收 阅读全文
posted @ 2021-12-15 16:47 ccme 阅读(24) 评论(0) 推荐(0)
摘要: # 是否后台启动 # 设置为yes后执行 /usr/redis/bin/redis-server 命令将在后台启动 daemonize yes # 是否开启保护模式 protected-mode no 阅读全文
posted @ 2021-12-15 11:04 ccme 阅读(24) 评论(0) 推荐(0)
摘要: 数据结构 Hash表 Redis采用Hash表方式存储K-V对,所以时间复杂读达到了(O1) 通过计算Key的hash值在哈希桶(数组中的一个位置)中拿到V的位置(指针)。 指针中存储的就是Redis的数据类型了。 Hash冲突:Redis采用链表的方式存储冲突列。next指针指向下一个元素。 Ha 阅读全文
posted @ 2021-12-15 11:03 ccme 阅读(41) 评论(0) 推荐(0)
摘要: 下载 + 版本 安装: wget http://download.redis.io/releases/redis-5.0.5.tar.gz yum install -y gcc-c++ yum install -y wget cd redis-5.0.5/src make mkdir /usr/re 阅读全文
posted @ 2021-12-15 10:55 ccme 阅读(29) 评论(0) 推荐(0)