随笔分类 - Redis
摘要:单体应用可以使用 synchronized 或 Lock 来加锁,synchronized 推荐使用类锁,也就是字节码锁,这样保证是全局唯一的,如果使用对象锁,要根据业务确定这个对象锁在这个业务中是唯一的。 对于微服务架构下,单体应用锁就不合适了,每个服务多个节点部署,虚拟机都不是用一个,肯定保证不
阅读全文
摘要:缓存预热 redis 启动时可以把一些数据放入 redis 中,结合 spring bean 的初始化回调方案是可行的实现方式 实现的 InitializingBean 接口的 afterPropertiesSet()方法 使用 @PostConstruct 注解标注方法 内存回收 随着时间推移,r
阅读全文
摘要:为什么需要持久化,持久化是什么 redis 是基于内存的所以速度快,没有与磁盘交互。但是缺点就是断电或宕机数据就没了,这是不可接受的 持久化就是把内存的数据也存在磁盘上,用于 redis 重启后时恢复数据 Redis 支持两种方式实现数据持久化: RDB 和 AOF RDB(Redis DataBa
阅读全文
摘要:主从环境搭建 主节点可以读写,从节点只能读,如果在从节点执行写命令会报错 每个服务器上准备 download redis 修改持久化方式为 RDB,关闭 AOF、关闭混合模式(主从节点都需要改) 启动每个 redis 服务 配置主从关系 如果在服务器启动后执行命令完成的配置只是临时的,重启后主从关系
阅读全文
摘要:Redis 数据结构 SDS 动态字符串,Redis 是 C 语言编写的,C 语言有字符串类型,Redis 没有直接使用 C 的字符串,因为 Redis 觉得 C 中的字符串存在一些问题: 获取字符串长度需要运算 非二进制安全 不可修改 所以 Redis 自己构建了一种新的字符串数据结构,简单动态字
阅读全文
摘要:基于 List 实现 生产者调用 LPUSH 往 list 存放消息,左插入,每次的消息都放在队列头 消费者调用 BRPOP 到 list 取消息,右弹出,弹出并返回队列末尾的一条消息 每次取的消息都是队列末尾的一条,如果队列有多条消息,要 BRPOP 多次 BPROP 会阻塞获取消息,如果队列没有
阅读全文
摘要:Bitmap 以二进制的数组存储(所有的数据都表示为 0 或 1,默认是0) 按bi位(bit)为单位参数,计算机是以字节(Byte)来计算容量的,一个字节等于8个位(1Byte=8bit) String 实现,所以最大支持 512M,二进制的数组容量上限是 512 * 1024 * 1024 *
阅读全文
摘要:GEO Geolocation 简写形式,表示一个地址位置,存储地理位置的数据类型,在 3.2 版本增加这种数据类型 底层是 zset 实现,所以删除成员要用 zrem 命令 GEOADD:GEOADD key longitude latitude member [longitude latitud
阅读全文
摘要:General 命令 作用 使用 描述 keys * 模糊搜索 keys qwe* 搜索 qwe 打头的 exists key 判断 keys 是否存在 exists mykey mykey 是否存在 type key 查看 key 的类型 type mykey del key 删除 key del
阅读全文