随笔分类 - redis
1
用于 redis 系列文章
摘要:需知 目前 java 操作 redis 的客户端有jedis 跟 Lettuce。 在 springboot1.x 系列中,使用的是 jedis 到了 springboot2.x 系列使用的是 Lettuce。 目前我们线上开发基本上都使用的版本是 springboot2.x 系列,所以我们需要会使
阅读全文
摘要:地址详情 Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html redisson 官网地址:https://redisson.org/ redisson git项目地址:https:
阅读全文
摘要:背景 合理的JedisPool资源池参数设置能为业务使用Redis保驾护航,本文将对JedisPool的使用、资源池的参数进行详细说明,最后给出“最合理”配置。 一、使用方法 以官方的2.9.0为例子(Jedis Release),Maven依赖如下: <dependency> <groupId>r
阅读全文
摘要:开篇 例如我们常见的 kafka、nginx 以及 tomcat 等底层都用的这类技术,这里暂且用 kafka 来列举案例。 当我们从 kafka 读取数据的时候,我们会调用 read 方法读取指定的内容,然后调用 write 方法,将字节流写到 socket 中,那么,我们调用这两个方法,在 OS
阅读全文
摘要:概念 Redis 事务的本质是通过 MULTI、EXEC、WATCH 等一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 redis 事务的三个阶段 事务开始 MULTI
阅读全文
摘要:简介 我们知道 Redis 中有五种基本结构,其中有一个叫 有序列表zset 的数据结构,它类似于 Java 中的 SortedSet 和 HashMap 的结合体,一方面它是一个 set 保证了内部 value 的唯一性,另一方面又可以给每个 value 赋予一个排序的权重值 score,来达到
阅读全文
摘要:正常我们大家使用缓存都是这个原理,即: 如果我们的数据在缓存里边有,那么就直接取缓存的。 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后 将数据库查出来的数据写到缓存中。 最后将数据返回给请求。 如果仅仅查询的话,缓存的数据和数据库的数据是没问题的。但是,当我们要 更新 时候呢?各种情况很
阅读全文
摘要:1、为什么需要分布式锁 随着互联网世界的发展,单体应用已经越来越无法满足复杂互联网的高并发需求,转而慢慢朝着分布式方向发展。所以同样,我们需要引入 分布式锁 来解决分布式应用之间 访问共享资源 的并发问题。 一般情况下,我们使用分布式锁主要有两个场景: 避免不同节点重复相同的工作:比如用户执行了某个
阅读全文
摘要:缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机或者大量缓存集中在某一个时间段失效。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别
阅读全文
摘要:始因 有时候线上可能会遇到这样的问题: 明明我设置了对应的 key 以及超时时间,但是在使用的过程当中发现对应的 key 丢失了,尤其是在用户账号登录状态保持有效期的场景下,会越发的明显。即:一个用户正常登录会产生一个有效期为一天的 token,这样用户再次进入网站是不需要登录的。但是发生 key
阅读全文
摘要:背景 要想完全彻底的搞清楚 epoll 底层原理,我们有必要了解一下整个 IO 的发展历程,计算机内核的每一次的优化升级都是由于其自身的缺点进而发展出来的,从而促使底层系统函数的迭代升级,进而才会促使整个 IT 技术的升级迭代。这里不会讲太细节性的东西,例如:网络通信、CPU 中断等,这个有兴趣的同
阅读全文
摘要:前言 redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观。那么在一些场景下,通过选用合适数据结构来存储,可以大幅减少内存的占用,甚至于可以减少80%-99%的内存占用。 利用 zipList 来代替大量的 key-value 先来看一下场景,在 广告系统、海量用户系统 经常会碰
阅读全文
摘要:一、基础总结篇 1、谈一下 Redis 的优缺点 优点: 读写性能优异, Redis能读的速度是 110000 次/s,写的速度是 81000 次/s 支持数据持久化,支持 AOF 和 RDB 两种持久化方式 支持事务,Redis 的所有操作都是原子性的 数据结构丰富,除了支持 string 类型的
阅读全文
摘要:Redis集群主从同步了解吗? 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为 主节点(master),后者称为 从节点(slave)。且数据的复制是 单向 的,只能由主节点到从节点。 Redis 主从复制支持 主从同步 和 从从同步 两种,后者是 Red
阅读全文
摘要:一、场景 我们现在要卖 100件 婴儿纸尿裤,然后我们根据以往这样秒杀活动的数据经验来看,目测来抢这100件纸尿裤的人足足有10万人。 你一听,完了呀,这我们的服务器哪里顶得住啊!说真的直接打DB肯定挂。但是别急嘛,我们在开始之前应该先思考下 会出现哪些问题? 二、问题罗列 2.1、高并发 是的 高
阅读全文
摘要:1、前言 Redis 的持久化分为 2 种,一种是 RDB(全量 redis database),一种是 AOF(增量 append only file)。 RDB 是旧的模式,现在基本上都使用 AOF。当然,今天两个都会一起聊聊。 2、RDB RDB 流程图: RDB 特点: RDB 是一种快照模
阅读全文
摘要:性能测试报告 查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS,就以 4GB 集群版本,2 个节点,2 核,qps 基本上就已经达到 16 万。 Redis 的设计与实现 其实 Redis 主要是通过三个方面来满足这样高效吞吐量的性能需求 高效的数据结构 多路复用 I
阅读全文
摘要:Redis 作为广为人知的内存数据库,在玩具项目和复杂的工业级别项目中都看到它的身影,然而 Redis 却是使用单线程模型进行设计的,这与很多人固有的观念有所冲突,为什么单线程的程序能够抗住每秒几百万的请求量呢?这也是我们今天要讨论的问题之一。 除此之外,Redis 6.0 新版本却抛弃了单线程模型
阅读全文
摘要:redis有五种基本数据结构:字符串、hash、set、zset、list。但是你知道构成这五种结构的底层数据结构是怎样的吗? 今天我们来花费五分钟的时间了解一下。 1、string 这里不得不提动态字符串 SDS,即 ”simple dynamic string" 的缩写。redis 中所有场景中
阅读全文
摘要:直接上脑图,下面图是花费了两天的时间才完成的,有兴趣的同学好好看一下:
阅读全文
1