
Redis
文章平均质量分 94
老周聊架构
微信公众号:老周聊架构
展开
-
阿里二面:Redis 中的 AOF 文件太大了怎么办?
欢迎大家关注我的微信公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。一、前言写这篇文章的目的是来自我的一位粉丝的投稿,说面试阿里被问到了这个问题。不得不说阿里的面试问的都挺有质量,一般的我们只会关注 Redis 的两种持久化方式 RDB 和 AOF。但老周这里盲猜面试的过程肯定也是先从持久化方式问起,然后循循渐进的问到 AOF 文件太大了怎么办?本着知其然知其所以然的态度,老周这里会带你从 RDB 和 AOF 的实现原理、各自的触发方.原创 2021-06-03 00:07:51 · 8025 阅读 · 17 评论 -
Redis中ZSet的底层数据结构跳跃表skiplist,你真的了解吗?
欢迎大家关注我的微信公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。一、前言老周写这篇文章的初衷是这样的,之前项目中有大量使用 Redis 的 ZSet 数据结构来实现各种排行榜的功能。老周以前也写过关于跳表的数据结构,但那是纯数据结构方面来分析的,今天我们就来从跳跃表在 Redis 中的底层实现方向来分析。我们都知道 Redis 有五种常用的数据结构:String、Hash、List、Set 以及 ZSet,其中 ZSet 是 Re.原创 2021-05-17 01:56:51 · 4463 阅读 · 42 评论 -
Redis使用Lua脚本保证zset的删除和插入的原子性
话不多说 直接上代码!!!@Autowiredprivate StringRedisTemplate stringRedisTemplate;private static final String DELANDZADDSCRIPT = "if redis.call('zcard', KEYS[1]) > 0 then\n" + " redis.call('del', KEYS[1])\n" + " for i, v in pairs(AR原创 2020-11-13 23:16:40 · 3227 阅读 · 0 评论 -
Redis多集群客户端
一、pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional></dependency>如果不加这个依赖,配置类会出现下面的问题。二、mult原创 2020-09-09 21:33:44 · 860 阅读 · 0 评论 -
Redis如何批量删除指定模式键的值
今天有一个小功能点是关于批量删除redis指定的键。我以为几分钟既可以搞定的事情,没想到花了我一个钟的时间。比如我redis存的键是:{imei}l:topic{imei}l:title{imei}l:tag{imei}l:url它们都有共同的前缀:{imei}l所以我一顿操作直接: delete {imei}l*没想到redis直接给我返回个0,意思没有删除任何东西。wha...原创 2020-04-18 20:55:15 · 2242 阅读 · 0 评论 -
BATJ关于Redis的高频面试真题
1、Redis持久化机制2、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题3、热点数据和冷数据是什么4、Memcache与Redis的区别都有哪些?5、单线程的redis为什么这么快6、redis的数据类型,以及每种数据类型的使用场景7、redis的过期策略以及内存淘汰机制8、Redis 为什么是单线程的9、Redis 常见性能问题和解决方案?10、为什么Redis的操作...原创 2020-04-03 00:27:36 · 559 阅读 · 0 评论 -
SpringBoot项目中自定义Redis的序列化方式以及封装RedisUtil
我们项目中经常用到Redis,而且存的值很多是json格式。所以这边我就自定义了RedisTemplate来修改Redis的序列化方式。而且封装了常用的Redis的操作。一、创建自定义配置类RedisConfigpackage com.riemann.springbootdemo.config;import com.fasterxml.jackson.annotation.JsonAuto...原创 2020-03-30 22:20:01 · 862 阅读 · 0 评论 -
手写Redis客户端
一、前言要想手写Redis客户端,必须先了解清楚Redis的通信协议是什么。我的理解就是客户端与服务端按照双方约定的规则来进行的编码方式,客户端将要发送的命令进行编码,然后服务端收到后,使用同样的协议进行解码,服务端处理完成后,再次编码返回给客户端,客户端解码拿到返回结果,这样就完成了一次通信。博主这里为了方便小伙伴们理解,画了一张客户端与服务端通信的结构图,如下:理解了这个通信结构图,我们...原创 2020-03-15 17:59:55 · 659 阅读 · 0 评论 -
分布式架构下基于Redisson实现Redis分布式锁
一、前言作为后台开发,相信大家都对 Redis 并不陌生了。Redis 有三个客户端 Jedis、Redisson、Lettuce。也就是提供基本的驱动来连接操作 Redis 数据库的。我们先简单介绍下这几个客户端的异同。Jedis:是Redis 的 Java 实现客户端,提供了比较全面的 Redis 命令的支持。Redisson:实现了分布式和可扩展的 Java 数据结构。Lettuc...原创 2020-03-10 00:17:54 · 855 阅读 · 0 评论 -
Redis的几个经典常见面试题
1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机制是什么?各自的优缺点?9、Redis 常见性能问题和解决方案:10、redis ...原创 2019-12-24 23:03:41 · 9110 阅读 · 0 评论 -
redis与memcache的区别
一、简介1、redisRedis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 ...原创 2019-09-30 11:44:19 · 364 阅读 · 0 评论 -
Linux上安装Redis并搭建集群(一)
一、安装Redis0、搭建环境虚拟机:VMware 10.0.2Linux系统:CentOS-6.5SSH客户端:Xshell 61、安装redist需要安装支持包,yum install gcc-c++ 2、redis安装包采取的是在线wget下载.若wget命令不存在,执行 yum -y install wget安装 wget http://download.redis.io...原创 2019-01-28 22:14:25 · 557 阅读 · 0 评论 -
Linux上安装Redis并搭建集群(二)
二、搭建Redis集群1、安装ruby相关环境和包(ruby的安装踩了很多坑,所以放在首位先安装)(1).安装ruby环境yum install rubyyum install rubygems(2).安装ruby包gem install redis-5.0.3.gem(安装ruby包,遇到了各种坑,列举了我踩过所有的坑,可以去我另一篇帖子查看)2、创建集群节点文件目录在/u...原创 2019-02-01 01:02:09 · 564 阅读 · 0 评论