其他数据库

redis 设置生存和过期时间的原理分析

在了解原理前 先来看使用方法 通过EXPIRE命令或者PEXPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间,在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键。 SETEX命令可以在设置一个字符串键的同时为键设置过期...

Spring Boot 项目集成Redis的方式详解

集成方式 使用Jedis Jedis是Redis官方推荐的面向Java的操作Redis的客户端,是对服务端直连后进行操作。如果直接使用Jedis进行连接,多线程环境下是非线程安全的,正式生产环境一般使用连接池进行连接。 <dependency>...

Redis 哈希Hash底层数据结构详解

1. Redis 底层数据结构 Redis数据库就像是一个哈希表,首先对key进行哈希运算得到哈希值再取模得到一个下标,每个元素是一个节点,节点之间形成链表。这感觉有点像Java中的HashMap。 不同的数据类型的实现方式是不一样的,可以通过object...

redis实现的四种常见限流策略

引言 在web开发中功能是基石,除了功能以外运维和防护就是重头菜了。因为在网站运行期间可能会因为突然的访问量导致业务异常、也有可能遭受别人恶意攻击 所以我们的接口需要对流量进行限制。俗称的QPS也是对流量的一种描述 针对限流现在大多应该是令牌桶算法,因为它...

通过redis的脚本lua如何实现抢红包功能

redis 脚本介绍 Redis从2.6版本开始,通过内嵌支持Lua环境 好处 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络延迟 原子操作。redis将整个脚本当作一个整体去执行,中间不会被其他命令插入,无需担心脚本执行过程中会出现竞态条件...

Django使用redis配置缓存的方法

1.settings配置 2.全站缓存 3.视图函数缓存 4.低级缓存 5.session缓存 对于非经常更新的服务器数据,若每次都从硬盘读取一次,会浪费服务器资源、拖慢响应速度,而且数据更新频率较高,服务器负担比较大。若保存到数据库,还需要额外建立一张对...

深入理解redis分布式锁和消息队列

最近博主在看redis的时候发现了两种redis使用方式,与之前redis作为缓存不同,利用的是redis可设置key的有效时间和redis的BRPOP命令。 分布式锁 由于目前一些编程语言,如PHP等,不能在内存中使用锁,或者如Java这样的,需要一下更...

Redis的数据存储及String类型的实现

Redis作为基于内存的非关系型的K-V数据库。因读写响应快速、原子操作、提供了多种数据类型String、List、Hash、Set、Sorted Set、在项目中有着广泛的使用,今天我们来探讨下下Redis的数据结构是如何实现的。 1 引言 Redis作...