
Redis
文章平均质量分 66
缓存
Java程序员廖志伟
《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)作者、清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、阿里云专家博主、51CTO专家博主。研究过Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper、RabbitMQ、RocketMQ、Kafka、Redis、MySQL、ElasticSearch、MongoDB、ShardingSphere、DDD、Kubernetes等技术。
展开
-
Redis哨兵模式和Redis Cluster模式
🌟我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五公里、🚀徒步爬过衡山、🔥有过三个月减肥20斤的经历、是个喜欢躺平的狠人。原创 2024-02-26 14:18:01 · 2369 阅读 · 0 评论 -
【什么时候选择Redis,什么时候选择Memcached?】
当应用需要的是数据的高速读取和写入,同时也需要支持复杂的数据结构和高级数据操作时,选择Redis可能更为合适。而当应用需要的是简单的键值对缓存,尤其是在大规模并发读写的情况下,选择Memcached可能更为合适。综合来看,如果应用场景对数据处理和操作有较高的要求,同时需要高速读写和支持复杂的数据结构,选择Redis更为合适;Redis和Memcached都是用来做缓存的工具,但是它们有不同的特点,选择使用哪一个工具应该取决于你的应用场景和需求。原创 2023-07-21 12:15:00 · 186 阅读 · 0 评论 -
【Redis6.0之前为什么一直不使用多线程?】
然而,随着 Redis 的应用场景不断扩大,例如在大规模缓存、实时消息处理等场景下,Redis 面临着更大的并发和吞吐量需求,于是在 6.0 版本中引入了多线程功能,来满足这些高并发的需求。Redis 6.0 之前没有采用多线程的原因是因为 Redis 的数据结构和算法都是单线程最优的,多线程并不会提高性能,反而会引入额外的锁、线程管理和上下文切换的开销,导致性能反而下降。原创 2023-07-19 12:15:00 · 274 阅读 · 0 评论 -
【java_wxid项目】【第十章】【Redis集成】
Redis集成原创 2022-09-12 11:53:43 · 730 阅读 · 4 评论 -
【Redis我可以讲一个小时】
脑裂导致的数据丢失:脑裂导致的数据丢失:某个 主节点 所在机器突然脱离了正常的网络,跟其他从节点机器不能连接,但是实际上 主节点还运行着,这个时候哨兵可能就会认为 主节点 宕机了,然后开启选举,将其他从节点切换成了 主节点,集群里就会有两个主节点 ,也就是所谓的脑裂。虽然某个从节点被切换成了 主节点,但是可能 client 还没来得及切换到新的主节点,还继续向旧的主节点写数据,当旧的主节点再次恢复的时候,会被作为一个从节点挂到新的 主节点上去,自己的数据会清空,从新的主节点复制数据,新的主节点并没有后来 c原创 2022-02-25 19:14:17 · 4205 阅读 · 41 评论 -
【Redis】
一个应用程序, 想对外提供服务, 一般都是通过建立套接字监听端口来实现, 也就是socket。应用对外提供服务的过程:问题:如果主线程处理read,就不能接收其他连接了, 所以只能开新的线程去处理这个事情。而且read操作是调用系统函数, 需要进行进程的切换, 从用户进程切换到系统进程,连接少还好,连接多的话,无疑降低了性能。解决方案:用户线程批量将要查询的连接发给操作系统,这个过程只发生一次进程的切换,用户线程告诉操作系统,需要哪些数据, 它遍历查找,然后将结果返回给用户线程,这就是select。..原创 2022-01-12 10:48:14 · 2389 阅读 · 27 评论 -
【高并发/高可用/哨兵机制/集群模式/高可用与主备切换/主从复制/断点续传】
我是廖志伟,一名Java开发工程师、德元计算机学院Java教学组组长、CSDN博客专家、Java领域优质创作者、幕后大佬社区创始人。拥有多年一线研发经验,参与并主导过多个百万级并发的互联网产品研发和系统架构搭建,对大型分布式,高并发及微服务架构有非常深入的研究,对于缓存框架,中间件底层,系统调优颇多经验。原创 2021-12-06 18:23:32 · 806 阅读 · 0 评论 -
【Redis持久化】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-10 08:45:00 · 1205 阅读 · 0 评论 -
【Redis五大数据类型的应用场景】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-10 09:00:00 · 762 阅读 · 0 评论 -
【布隆过滤器】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-10 09:15:00 · 594 阅读 · 0 评论 -
【击穿、穿透、雪崩】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-09 09:15:00 · 1898 阅读 · 0 评论 -
【高并发/高可用/哨兵机制/集群模式/高可用与主备切换/主从复制/断点续传】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-08 09:45:00 · 1510 阅读 · 0 评论 -
【Redis并发竞争】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-07 09:15:00 · 442 阅读 · 0 评论 -
【Redis热点数据缓存】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-07 09:15:00 · 2484 阅读 · 0 评论 -
【Redis与数据库的数据一致性】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-06 09:00:00 · 1150 阅读 · 0 评论 -
【Redis过期策略/内存淘汰机制/对过期Key的处理】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-04 11:15:52 · 1475 阅读 · 0 评论 -
【Redis分布式寻址算法】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-05 09:30:00 · 1194 阅读 · 0 评论 -
【 Redis五大数据类型实现原理】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-04 10:53:55 · 907 阅读 · 0 评论 -
【Redis底层数据结构】
我是廖志伟,一名Java开发工程师、幕后大佬社区创始人、Java领域优质创作者、CSDN博客专家。拥有多年一线研发经验,研究过各种常见框架及中间件的底层源码,对于大型分布式、微服务、三高架构(高性能、高并发、高可用)有过实践架构经验。原创 2021-12-04 10:42:51 · 501 阅读 · 0 评论 -
【数据存储】【Redis】第七章:Redis缓存Zset类型的使用
package com.sky.testmodule.controller;import com.sky.testmodule.constant.TestConstant;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.DefaultTypedTuple;import org.springframework.data.redis.core原创 2021-09-22 17:10:33 · 813 阅读 · 18 评论 -
【数据存储】【Redis】第八章:Redis缓存Set类型的使用
package com.sky.testmodule.controller;import com.sky.testmodule.constant.TestConstant;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.Cursor;import org.springframework.data.redis.core.RedisTempl原创 2021-09-22 17:10:24 · 772 阅读 · 9 评论 -
【数据存储】【Redis】第七章:Redis缓存List类型的使用
package com.sky.testmodule.controller;import com.sky.testmodule.constant.TestConstant;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.web.bind.annotation原创 2021-09-22 17:07:07 · 1180 阅读 · 17 评论 -
【数据存储】【Redis】第六章:Redis缓存Hash类型的使用
package com.sky.testmodule.controller;import com.sky.testmodule.constant.TestConstant;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.Cursor;import org.springframework.data.redis.core.RedisTempl原创 2021-09-17 14:23:36 · 635 阅读 · 9 评论 -
【数据存储】【Redis】第五章:Redis缓存String类型的使用场景
package com.sky.testmodule.controller;import com.alibaba.fastjson.JSON;import com.sky.testmodule.constant.TestConstant;import com.sky.testmodule.entity.TestEntity;import com.sky.testmodule.util.HttpRequestUtil;import org.redisson.Redisson;import org原创 2021-08-11 09:19:54 · 482 阅读 · 15 评论 -
【数据存储】【Redis】第四章:高并发下实现分布式锁
直接上代码:大部分互联网公司实现分布式锁原理 /** * 分布式锁底层实现原理 * @return */ @GetMapping("distributedLock") public Object distributedLock(){ String lockKey = "distributedLockKey"; //给每个线程都设置一个唯一标识,避免出现程序执行的时间超过设置的过期时间,导致其他线程删除了自己的锁原创 2021-08-08 21:38:15 · 2398 阅读 · 37 评论 -
【数据存储】【Redis】第一章:快速集成Redis应用到项目中
准备工作:搭建项目提供Redis模块给其他项目集成应用我们创建一个项目:第一步:父类的pom.xml文件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m原创 2021-08-07 13:15:31 · 450 阅读 · 9 评论 -
【数据存储】【Redis】第二章:底层数据结构
简单字符串先简单了解一下C语言是怎么处理字符串的:在C语言中,字符串结束的标识是空字符,也就是’’,这会有一个问题,就是字符串的内容可能包括空字符串,这个时候是不是就没办法正确存取字符串的内容了,它有可能中途读取一半就完了。除此之外,它还不记录字符串的长度,这也会有一系列问题,如果需要获取字符串的长度通过遍历计数来获取的,这会导致它的时间复杂度会比较高。如果需要修改字符串,就要重新分配内存,不重新分配的话,字符串长度增大,超出给定的长度,这个时候会造成内存缓冲区溢出,字符串长度减小还会造成内原创 2021-08-03 20:59:47 · 1507 阅读 · 4 评论 -
【数据存储】【Redis】第三章: Redis五大数据类型实现原理
由于C语言跟贴近操作系统,直接跟操作系统交互,命令执行响应比较快,所以Redis选择C语言进行编写可以提高性能,但是C 语言不具备自动回收内存功能,于是乎Redis自己构建了一个内存回收机制。原创 2021-07-31 12:01:48 · 4640 阅读 · 11 评论 -
缓存:第一章:缓存优化
原创 2021-06-29 10:20:17 · 693 阅读 · 9 评论 -
我的分享:第八章:redis专题
发现了一位大佬的redis专题,个人觉得写的很到位,这里给上地址:https://www.cnblogs.com/ysocean/tag/Redis%E8%AF%A6%E8%A7%A3/原创 2021-03-02 16:20:24 · 1100 阅读 · 34 评论 -
【高级开发进阶】Redis的单线程和高性能
Redis的单线程和高性能Redis是单线程吗?Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。正因为 Redis 是单线程,所以要小心使用 Redis 指令,对于那些耗时的原创 2021-03-01 09:55:16 · 3572 阅读 · 139 评论 -
【高级开发进阶】17.1.3 Redis持久化机制与安全机制
Redis持久化RDB快照(snapshot)在默认情况下, Redis 将内存数据库快照保存在名字为dump.rdb的二进制文件中。说明:可以对 Redis 进行设置, 让它在“N秒内数据集至少有M个改动”这一条件被满足时, 自动保存一次数据集。比如说, 以下设置会让 Redis 在满足“60秒内有至少有1000个键被改动”这一条件时, 自动保存一次数据集:# save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可。还可以手动执行命令生成RDB...原创 2021-02-23 09:54:25 · 3848 阅读 · 115 评论 -
【高级开发进阶】17.1.1 Redis核心数据结构剖析
keys:全量遍历键,用来列出所有满足特定正则字符串规则的key,当redis数据量比较大时,性能比较差,要避免使用scan:渐进式遍历键SCAN cursor [MATCH pattern] [COUNT count]scan 参数提供了三个参数,第一个是 cursor 整数值(hash桶的索引值),第二个是 key 的正则模式,第三个是一次遍历的key的数量(参考值,底层遍历的数量不一定),并不是符合条件的结果数量。第一次遍历时,cursor 值为 0,然后将返回结果中第一个整数..原创 2021-02-23 09:49:56 · 3750 阅读 · 127 评论 -
【高级开发进阶】17.1 扩展篇:redis安装
下载地址:http://redis.io/download安装步骤:# 安装gcc yum install gcc# 把下载好的redis-5.0.3.tar.gz放在/usr/local文件夹下,并解压 wget http://download.redis.io/releases/redis-5.0.3.tar.gz tar xzf redis-5.0.3.tar.gz cd redis-5.0.3# 进入到解压好的redis-5.0.3目录下,进行编译与安装 make# 修改配置 d原创 2021-02-23 09:46:51 · 3115 阅读 · 13 评论 -
Redis数据结构存储系统:第二章:如何使用
Redis与SpringBoot整合:第一步:在项目中引入 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency&g...原创 2019-01-18 19:37:26 · 832 阅读 · 0 评论 -
Redis数据结构存储系统:第三章:Redis在项目中如何使用?
简单介绍一个redis?redis是一个key-value类型的非关系型数据库,基于内存也可持久化的数据库,相对于关系型数据库(数据主要存在硬盘中),性能高,因此我们一般用redis来做缓存使用;并且redis支持丰富的数据类型,比较容易解决各种问题 Redis的Value支持5种数据类型,string、hash、list、set、zset(sorted set); String...原创 2019-02-19 20:01:31 · 1698 阅读 · 0 评论 -
Redis数据结构存储系统:第四章:底层实现原理
Redis 以什么形式存储数据? 什么是hash槽?String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合)Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把...原创 2019-03-11 10:38:19 · 757 阅读 · 0 评论 -
SpringDataRedis:第一章:简介
SpringDataRedis简介 项目常见问题思考我们目前的系统已经实现了广告后台管理和广告前台展示,但是对于首页每天有大量的人访问,对数据库造成很大的访问压力,甚至是瘫痪。那如何解决呢?我们通常的做法有两种:一种是数据缓存、一种是网页静态化。我们今天讨论第一种解决方案。Redisredis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写。企业开发通常采...原创 2019-04-14 19:41:47 · 619 阅读 · 1 评论 -
Redis数据结构存储系统:第一章:安装配置
一、从NoSQL说起NoSQL是Not only SQL的缩写,大意为“不只是SQL”,说明这项技术是传统关系型数据库的补充而非替代。在整个NoSQL技术栈中MemCache、Redis、MongoDB被称为NoSQL三剑客。那么时代为什么需要NoSQL数据库呢?我们来做个对比: 关系型数据库 NoSQL数据库 数据存储位置 硬盘 内存 数据结构 高...原创 2019-01-05 16:06:28 · 1063 阅读 · 0 评论