Redis事务redis事务就是一个命令执行的队列,将一系列预定义的命令包装成一个整体,在执行时,就按这个顺序依次执行,中间不会被打断或干扰事务的基本操作开启事务multi 作用: 设定事务的开启位置,从这句命令之后,后续所有的指令都会被加入事务队列,并不会立刻执行。执行事务exec 作用: 设定事务的结束位置,同时执行事务,返回事务队列里每条指令的执行 ......
274
0
0
2022-11-25
GEOGEO即地址信息定位,可以用来存储经纬度,计算两地距离,范围计算等。这意味着我们可以使⽤ Redis 来实现美团和饿了么「附近的餐馆」,微信摇一摇等功能了。常用APIGEOADD key logitude latitude member[ logitude1 latitude1 member1...]: 增加地理位置信息127.0.0.1:8100&g ......
241
0
0
2022-11-25
Redis-BitmapBitMap,即位图,是一个byte数组,用二进制表示,只能存储0和1,BitMap并不是一个特殊的数据结构,它实质上还是普通的字符串。1. 操作API由于BitMap本质上还是String, 所以我们可以使用get/set直接获取整个位图的内容,也可以使用提供的专门的getbit/setbit来按位处理命令含义getbit key ......
223
0
0
2022-11-25
Redis 发布订阅Redis 发布订阅可以用在像消息通知,群聊,定向推送,参数刷新加载等业务场景发布订阅模型有三个角色:发布者(Publisher)订阅者(Subscriber)频道(channel)每个订阅者可以订阅多个频道,发布者可以在某个频道里发布消息,订阅者会接受到自己订阅频道里发布的消息。相关命令(参考)publish channel messa ......
280
0
0
2022-11-25
Redis-Pipeline正常的Redis 命令的生命周期是 Client 给 Server 发一条命令,Server 执行后把结果反馈给 Client,但这个过程中, Client 和 Server 之间的通信会花费大量时间,pipeline 的思路就是每一次 Client 和 Server 通信不再是一次发一条命令(/结果)而是把一批命令打包传输给 S ......
297
0
0
2022-11-25
删除策略那些有效期到了的数据,Redis并不是真的一到期立刻就把它删了,因为删除数据相比于其他客户端命令并不那么重要,这些数据会暂留在内存中,最终根据Redis的删除策略删除好的删除策略应该是尽量寻找内存占用和CPU占用之间的平衡点,而不是单纯确保过期数据被删除,顾此失彼会造成Redis整体性能的下降,引起服务器宕机或内存泄露。Redis 有三种删除策略:定 ......
252
0
0
2022-11-25
RedisRedis是什么,为什么用Redis 是一个开源免费的,遵循BSD协议,是一个高性能(NOSQL)的 key-value数据库, 由C语言编写。提供多种语言的API,SQL: 关系型数据库NOSQL: 非关系型数据库(为了解决大规模数据集合多种数据种类带来的挑战,尤其是大数据应用难题)NoSQLNoSQL数据库的四大分类键值型(Key-Value) ......
277
0
0
2022-11-25
Redis 客户端和服务端之间是采用 TCP 协议进行通信的,是基于 Request/Response 这种一问一答的模式,即请求一次响应一次。普通模式我们先来看下普通模式下,一条 Redis 命令的简要执行过程:客户端发送一条命令给 redis-server,阻塞等待 redis-server 应答redis-server 接收到命令,执行命令redis- ......
302
0
0
2022-11-17
我们知道Redis是支持事务的,但是它里面的事务为什么不支持回滚呢?1.在Redis中,命令只会因为错误的语法而失败,或者是命令用在了错误类型的键上面;也就是说,从实用的角度说,失败的命令是由编译错误造成的,而这些错误应该在开发过程中被发现,而不应该出现在生产环境中。2.因为不需要对回滚进行支持,所以Redis的内部可以保持简单且快速。3.有种观点认为,Re ......
275
0
0
2022-11-16
一、基于 Redis 分布式锁优化基于 setnx 实现的分布式锁存在下面问题:不可重入: 同一个线程无法多次获取同一把锁(例如方法A执行前需要获取锁,然后调用方法B,方法B中也需要获取锁)不可重试: 获取锁只尝试一次就返回 false,没有重试机制超时释放: 锁超时释放虽然可以避免死锁,但是如果业务执行耗时较长,也会导致锁释放,存在安全隐患主从一致性(读写 ......
282
0
0
2022-11-15
简介关于微服务相关的分享,我都是在 Windows 10 系统下实践的,所以跟 Spring Boot 配套的软件也是在此系统上面安装的。今天跟大家介绍一下如何在 Win10 下安装 Redis,该篇是 Spring Boot 使用 Redis 的处 ......
254
0
0
2022-11-12
什么是Session/Cookie用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互。HTTP协议本身是无状态的,当用户的第一次访问请求结束后,后端服务器就无法知道下一次来访问的还是不是上次访问的用户。我们需要基于HTTP协议支持会话状态的机制,这样的机制可以使Web服务器从多次单独的HTTP请求中知道哪些请求是来自哪个会话的。Session与Co ......
276
0
0
2022-11-10
关于 redis 相信大家都不陌生了,之前有从 0 -1 分享过 redis 的基本使用方式,用起来倒是都没有啥问题了,不过还是那句话,会应用之后,我们必须要究其原理,知其然知其所以然今天我们来分享一下关于 redis 的存储结构的原理redis 的存储结构的原理我们都知道 redis 是一个 K-V 内存数据库,类似于 memcache ,那么一般存储这种 ......
219
0
0
2022-11-08
redis 是使用 C 语言编写的,但是 C 语言是没有字典这个数据结构的,因此 C 语言自己使用结构体来自定义一个字典结构typedef struct redisDbsrc\server.h 中的 redis 数据库 数据结构/* Redis database representation. There are multiple databases ide ......
245
0
0
2022-10-31
仅为本书对Redis中跳跃表的介绍和实现。基本定义和算法会重开一篇。zset结构体代码在 7.6 章中。查找思想根据二分法,分跨度,查分值定位。大部分常用操作,如增删改查,排名,时间复杂度为平均O(logN),最坏O(N),N为跳跃表长度。大部分情况下效率可和平衡树媲美。因其实现相较平衡树较为简单,故不少程序以跳跃表来代替平衡树。它是有序集合的底层实现之一。 ......
225
0
0
2022-10-29