使用SpringCache加Redis做缓存
目录Redis + SpringCache1. 添加依赖2. 使用配置类注入相关组件3. 使用以下注解4. 配置5. 存储格式6. 注意点Redis做缓存和SpringCache缓存记录一下Redis做缓存和SpringCache缓存的区别SpringCache 使用方法 Redis + Sprin...[2021/12/31]
Redis?抽奖大转盘的实战示例
目录1. 项目介绍2. 项目演示3. 表结构4. 项目搭建4.1 依赖4.2 YML配置4.3 代码生成4.4 Redis 配置4.5 常量管理4.6 业务代码4.7 总结5. 项目地址 1. 项目介绍
这是一个基于Spring boot + Mybatis Plus + Redis 的简单案例...[2021/12/31]
Redis基本操作进阶篇--事务学习
事务
概述
Redis中的事务(transaction)是一组命令的集合。一个事务中的命令要么全部执行,要么都不执行。Redis的事务没有关系数据库事务提供的回滚(rollback)功能。
Redis通过MULTI 标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列(queu...[2021/12/31]
Redis基本操作进阶篇学习--排序
有序集合
Redis有序集合中每个元素都会关联一个double类型的分数。Redis通过分数来为集合中的成员进行从小到大的排序。
有序集合中的成员是唯一的,但分数(score)可以重复。
zadd name 2 kang
zadd name 1 li
zadd name 3 wang
...[2021/12/31]
Redis入门及常用命令学习
Redis简介
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持...[2021/12/20]
基于Redis实现阻塞队列的方式基于Redis实现阻塞队列的方式
日常需求开发过程中,不免会遇到需要通过代码进行异步处理的情况,比如批量发送邮件,批量发送短信,数据导入,为了减少用户的等待,不希望一直菊花转啊转,因此需要进行异步处理,做法就是讲要处理的数据添加到队列当中,然后按照排队的先后顺序进行异步处理。
这个队列,可以是专业的消息队列,如 RocketM...[2021/12/20]
php安装redis扩展过程介绍
目录一、下载扩展包二、解压安装包三、 编译四、配置五、make编译六、安装位置七、查询php配置文件位置八、添加redis扩展九、是否安装成功 一、下载扩展包
命令?
cd /usr/local rc/
wget https: pecl.php.net/get/redis-4...[2021/12/17]
用Go+Redis实现分布式锁的示例代码用Go+Redis实现分布式锁的示例代码
目录为什么需要分布式锁
分布式锁需要具备特性
实现 Redis 锁应先掌握哪些知识点
set 命令
Redis.lua 脚本
go-zero 分布式锁 RedisLock 源码分析
关于分布式锁还有哪些实现方案
项目地址
为什么需要分布式锁
用户下单
锁住 uid,防止重复下单。
库...[2021/12/17]
Window环境下的数据库部署——Redis数据库
1.Redis简介
Remote Dictionary Server(Redis) 是一个开源的,可基于内存亦可持久化的 Key-Value 数据库. Key 字符类型,其值(value)可以 是 字符串(String), 哈 希(Map), 列表(list), 集合(sets) 和 有序集合(...[2021/12/17]
就这?Redis持久化策略——RDB
我是蝉沐风,一个让你沉迷于技术的讲述者
公众号【蝉沐风】,欢迎大家关注留言
Redis之所以快,一个最重要的原因在于它是直接将数据存储在内存,并直接从内存中读取数据的,因此一个绝对不容忽视的问题便是,一旦Redis服务器宕机,内存中的数据将会完全丢失。
?
好在Redis官方为我们提...[2021/12/15]
Redis | 第12章 Sentinel 哨兵模式《Redis设计与实现》
目录前言1. 启动并初始化 Sentinel2. Sentinel 与服务器间的默认通信2.1 获取主服务器信息2.2 获取从服务器信息2.3 向主服务器和从服务器发送信息3. 接受来自主服务器和从服务器的频道信息3.1 更新 Sentinel 字典3.2 创建连向其他 Sentinel 的命令...[2021/12/15]
redis分布式锁解决表单重复提交的问题
假如用户的网速慢,用户点击提交按钮,却因为网速慢,而没有跳转到新的页面,这时的用户会再次点击提交按钮,举个例子:用户点击订单页面,当点击提交按钮的时候,也许因为网速的原因,没有跳转到新的页面,这时的用户会再次点击提交按钮,如果没有经过处理的话,这时用户就会生成两份订单,类似于这种场景都叫重复提交。...[2021/11/29]
浅谈Redis对于过期键的三种清除策略
目录PreRedis Key的超时设置处理被动删除主动删除当前已用内存超过maxmemory限定时,触发主动清理策略 对于过期键一般有三种删除策略
定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作;
惰性删...[2021/11/24]
Redis中Lua脚本的使用和设置超时
目录EVAL命令简介eval格式特性执行流程关于脚本超时SCRIPT KILL 命令SHUTDOWN NOSAVE 命令参考 Redis提供了Lua脚本功能来让用户实现自己的原子命令,但也存在着风险,编写不当的脚本可能阻塞线程导致整个Redis服务不可用。
本文将介绍Redis中Lua脚本的基本...[2021/11/24]
一分钟搞懂Redis的慢查询日志操作一分钟搞懂Redis的慢查询日志操作
目录什么是慢查询?什么是慢查询日志?如何获取慢查询日志?如何获取慢查询日志的长度?如何清理慢查询日志?怎么配置慢查询的参数?slowlog-log-slower-thanslowlog-max-len如何进行配置总结 什么是慢查询?
慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我...[2021/11/24]
Redis内存回收策略
目录概述maxmemory-policy 参数主动清理策略策略选择maxmemory-sample 概述
Redis也会因为内存不足而产生错误 , 也可能因为回收过久而导致系统长期的停顿,因此掌握执行回收策略十分有必要。在 Redis 的配置文件中,当 Redis 的内存达到规定的最大值时,允许...[2021/11/24]
redis执行lua脚本的实现方法
目录1. 语法格式2.类型转换3.lua脚本3.1 script命令3.2 脚本原子性3.3 脚本缓存和EVALSHA3.4 全局变量保护3.5 日志记录 从redis 2.6.0版本开始,redis内置了Lua解释器,并提供了eval命令来解析Lua脚本求值。
1. 语法格式
语法: ev...[2021/11/24]
redis lua脚本实战秒杀和减库存的实现
目录前言1.redi on介绍2. redis lua脚本编写与执行3.redis减库存lua脚本4.实战4.1 减库存逻辑4.2 压测 前言
我们都知道redis是高性能高并发系统必不可少的kv中间件,它以高性能,高并发著称,我们常常用它做缓存,将热点数据或者是万年不变的数据缓存到redis中...[2021/11/24]
Redis 如何批量设置过期时间(PIPLINE的使用)Redis 如何批量设置过期时间(PIPLINE的使用)
合理的使用缓存策略对开发同学来讲,就好像孙悟空习得自在极意功一般~
Redis如何批量设置过期时间呢?
不要说在foreach中通过set()函数批量设置过期时间
我们引入redis的PIPLINE,来解决批量设置过期时间的问题。
PIPLINE的原理是什么?
未使用pipline...[2021/11/24]
Go语言开发redis封装及简单使用详解Go语言开发redis封装及简单使用详解
目录go redis 集合操作--sadd安装redigo带密码的redis操作批量添加无密码redis操作redis封装包参考 go redis 集合操作--sadd
redis的go语言包,我们使用官方推荐的redigo,https: github.com/garyburd/redigo
...[2021/11/16]
Window server中安装Redis的超详细教程
1.下载Window版的安装包,选择下载msi版本安装即可。
官网不支持下载window版本,只能去github上下载:
Window版redis
按步骤安装完毕即可。
2.打开服务,会看到Redis服务已开启:
设置启动类型为自动.
这样每次机器重启,r...[2021/11/16]
带你轻松掌握Redis分布式锁带你轻松掌握Redis分布式锁
目录1. 什么是分布式锁2. 分布式锁该具备的特性3. 基于数据库做分布式锁4. 基于Redis做分布式锁4.1 超时问题4.2 可重入锁4.3 集群环境的缺陷4.4 Redlock 目前很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。
基于 CAP理论...[2021/11/9]
redis 过期策略及内存回收机制解析
目录1. 过期策略1.1 过期的 key 集合1.2 定时扫描策略1.3 从库的过期策略2. 懒惰删除2.1 异步线程2.2 flush2.3 异步队列2.4 AOF Sync很慢的问题2.5 更多异步删除点3. 过期淘汰配置4. LRU 算法4.1 近似 LRU 算法5. LRU5.1 LRU 模...[2021/11/9]
SpringBoot整合Redisson实现分布式锁
目录一、添加依赖二、redis配置文件三、新建配置类四、使用分布式锁可重入锁读写锁信号量(Semaphore)闭锁(CountDownLatch) Redi on是架设在redis基础上的一个Java驻内存数据网格(In-Memory Data Grid)。充分的利用了Redis键值数据库提供的一系...[2021/11/8]
Redis去重的3种不同方法汇总
目录前言1.基于 set
2.基于 bit
3.基于 HyperLogLog
4. 基于bloomfilter
总结 前言
这篇文章主要介绍了Redis实现唯一计数的3种方法分享,本文讲解了基于SET、基于 bit、基于 HyperLogLog三种方法,需要的朋友可以参考下
唯一计数是网站系...[2021/11/8]
如何在centos中安装redis插件bloom-filter如何在centos中安装redis插件bloom-filter
目录前言步骤:总结 前言
linux上安装redis就不说了,主要说redis安装插件布隆过滤器。
布隆过滤器:一种数据结构,是由一串很长的二进制向量组成,可以将其看成一个二进制数组。既然是二进制,那么里面存放的不是0,就是1,但是初始默认值都是0。
如下所示:
步骤:
1...[2021/11/8]
Redis生成分布式系统全局唯一ID的实现
目录分布式系统全局唯一ID基于Redis INCR 命令生成分布式全局唯一ID采用Redis生成商品全局唯一ID 分布式系统全局唯一ID
在互联网系统中,并发越大的系统,数据就越大,数据越大就越需要分布式,而大量的分布式数据就越需要唯一标识来识别它们。
例如淘宝的商品系统有千亿级别商品,订单...[2021/10/25]
Redis事务处理的使用操作方法
一、简介
Redis采用了乐观锁方式进行事务控制,它使用watch命令监视给定的key,当exec(提交事务)的时候,如果监视的key从调用watch后发生过变化,则整个事务会失败。也可以调用watc...[2021/10/19]
面试常问:如何保证Redis缓存和数据库的数据一致性
目录一、一致性1、强一致性
2、弱一致性
3、最终一致性
二、redis缓存和mysql数据库数据一致性解决
1、方案一:采用延时双删策略2、方案二:一步更新缓存(基于订阅Binlog的同步机制) 首先,我们先来看看有哪几种一致性的情况呢?
一、一致性
1、强一致性
如果你的项目对缓...[2021/9/27]
Redis高效率原因及数据结构分析
目录1、什么是redis?它主要用来干什么的?2、redis为什么这么快?基于内存存储实现高效的数据结构1、SDS简单动态字符串2、字典3、跳表
合理的数据编码合理的线程模型1、I/O多路复用2、什么是I/O多路复用?3、单线程模型虚拟内存机制Redis的虚拟内存机制是啥呢? 1、什么是redis?...[2021/9/27]
spring整合redisson开启缓存方式spring整合redisson开启缓存方式
目录spring整合redi on开启缓存@Cacheable@CachePut@CacheEvictspring集成redi on踩过的坑 spring整合redi on开启缓存
先来了解几个注解:
@Cacheable
表明所修饰的方法是可以缓存的:当第一次调用这个方法时,它的结果会...[2021/9/14]
redis的五大数据类型应用场景分析
目录1、对象的类型与编码2、字符串对象3、列表对象4、哈希对象5、集合对象6、有序集合对象7、五大数据类型的应用场景 1、对象的类型与编码
Redis使用前面说的五大数据类型来表示键和值,每次在Redis数据库中创建一个键值对时,至少会创建两个对象,一个是键对象,一个是值对象,而Redis中...[2021/8/26]
docker实现redis集群搭建的方法步骤
目录一、创建redis docker基础镜像
二、制作redis节点镜像
三、运行redis集群
引用: 摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群。
首先,我们需要理论知识:Redis...[2021/8/16]
Java之理解Redis回收算法LRU案例讲解
如何通俗易懂的理解LRU算法?
1.LRU是什么?
LRU全称Least Recently Used,也就是最近最少使用的意思,是一种内存管理算法,最早应用于Linux操作系统。
LRU算法基于一种假设:长期不被使用的数据,在未来被用到的几率也不大。因此,当数据所占内存达到一定阈值时,我们...[2021/8/9]
Redis分布式锁Redlock的实现Redis分布式锁Redlock的实现
目录普通实现
Redlock实现
Redlock源码
用法
唯一ID
获取锁
释放锁
普通实现
说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下:
- 获取锁(un...[2021/8/5]
Redisson实现Redis分布式锁的几种方式
目录Redis几种架构
普通分布式锁
单机模式
哨兵模式
集群模式
总结
Redlock分布式锁
实现原理
问题合集
前几天发的一篇文章《Redlock:Redis分布式锁最牛逼的实现》,引起了一些同学的讨论,也有一些同学提出了一些疑问,这是好事儿。本文在讲解如何使用Redi on实现Redis普...[2021/8/5]
springboot使用redis对单个对象进行自动缓存更新删除的实现
Springboot的项目搭建在此省略,pom文件依赖什么的就不说了
创建一个实体类
@Data
@EqualsAndHashCode(callSuper = true)
@Acce ors(chain = true)
@ApiModel(value="EReposito...[2021/8/4]
关于SpringBoot整合redis使用Lettuce客户端超时问题关于SpringBoot整合redis使用Lettuce客户端超时问题
参考的博客
问题起因
做毕设的时候,使用到Lettuce连接redis,一段时间后不操作,再去操作redis,会报连接超时错误,在其重连后又可使用。
原因是:Lettuce 自适应拓扑刷新(Adaptive updates)与定时拓扑刷新(Periodic updates) 是默认关闭的...[2021/8/4]
RedisTemplate中opsForValue和opsForList方法的使用详解
一、opsForValue用法
key:字符串,value:可以是任意对象Object(例如String、具体对象如自定义类Student等),一个key只能对应一个value。
1)value为String类型示例:
赋值方法
redisTemplate.opsForValu...[2021/8/4]
java 用redisTemplate 的 Operations存取list集合操作
java redisTemplate 的 Operations存取list集合
一 、存取为list类型
@RestController
@RequestMapping("/test")
@Slf4j
public cla TestController {
@A...[2021/8/4]
SpringBoot Redis批量存取数据的操作
SpringBoot Redis批量存取数据
springboot中的redisTemplate封装了redis批处理数据的接口,我们使用redisTemplate可以直接进行批量数据的get和set。
package com.huateng.applacation.service;...[2021/8/4]
C#实现Redis的分布式锁
目录Redis实现分布式锁(悲观锁/乐观锁)
Redis连接池
使用Redis的SetNX命令实现加锁,
调用方式
Redis实现分布式锁(悲观锁/乐观锁)
对锁的概念和应用场景在此就不阐述了,网上搜索有很多解释,只是我搜索到的使用C#利用Redis的SetNX命令实现的锁虽然能用,但是都...[2021/8/4]
Redis分布式非公平锁的使用
目录前言redis分布式锁第一版redis分布式锁第二版redis分布式锁第三版redis分布式锁最终版 前言
看了很多博客,和资料,这里只针对redis做分布式锁做一下深入探讨,希望对你们有帮助。网上提供了很多分布式锁的操作,这里逐一举例然后评论优缺点及改进方案,希望这样子能让当家更好的理解r...[2021/8/4]
python3操作redis实现List列表实例
目录下面是具体例子详解和代码:
①lrange(key , start , stop)
②lpush(key , value)
③rpush(key , value)
④lpop(key)
⑤rpop(key)
⑥blpop(key)
⑦brpop(key)
⑧brpoplpush(source,d...[2021/8/4]
springboot使用Redis作缓存使用入门教程springboot使用Redis作缓存使用入门教程
1.依赖与数据库设置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis&...[2021/7/26]
Docker搭建Redis5.0并挂载数据Docker搭建Redis5.0并挂载数据
目录 一、简单挂载持久化数据
二、通过DockerFile构建镜像,指定配置文件启动
记录 Docker 搭建 Redis5.0 并挂载数据过程,搭建参考自 Docker Hub
一、简单挂载持久化数据
docker run -d -p 6379:6379...[2021/7/21]
浅谈redis整数集为什么不能降级
目录前言基本结构何时使用intsetintset添加元素类型变动升级加入65535旧数据移位降级为什么不实现降级小结 前言
整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构。内部结构是redis五大结构重要支撑!
前面我们分...[2021/7/21]
缓存替换策略及应用(以Redis、InnoDB为例)
1 概述
在操作系统的页面管理中,内存会维护一部分数据以备进程使用,但是由于内存的大小必然是远远小于硬盘的,当某些进程访问到内存中没有的数据时,必然需要从硬盘中读进内存,所以迫于内存容量的压力下迫使操作系统将一些页换出,或者说踢出,而决定将哪些(个)页面踢出就是内存替换策略。
我们考虑内存中...[2021/7/21]
关于Redis未授权访问的问题
目录漏洞原理利用条件漏洞危害漏洞复现搭建测试环境攻击机Kali 2021.1利用redis写入webshell利用redis反弹shell利用redis写入 h公钥总结 漏洞原理
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非...[2021/7/12]
redis客户端实现高可用读写分离的方式详解
背景
(1) redis单机的读写性能轻松上大几万,不过线上环境不会只部署光秃秃的一个节点,还是会配合 sentinel 再部署一个 slave作为高可用节点的;
但是standby的slave节点是不对外提供服务端的,一定程度上造成了浪费资源
(2) 当业务不断发展,原来单节点缓存的数据...[2021/7/5]