
Redis
文章平均质量分 92
Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,
码上生花
强者创造时代,能者顺应时代,弱者繁衍后代。
展开
-
Redis实现缓存一致性
redis作为应用与数据库之间的缓存层,通常应用在操作数据库之前先操作redis,读操作时只有redis不存在,才会操作数据库,写操作时需要更新数据库和redis缓存。通过canal组件订对biglog日志进行订阅,模仿数据库的slave数据库的备份请求,使得redis缓存数据删除,保证redis与数据库数据一致性。根据以上4种流程分析,可以明确出两个问题,一个是缓存是更新还是删除,另外一个是先操作数据库还是先操作缓存呢。先操作数据库的流程,就是先对数据库进行修改,再将缓存中的数据进行删除。原创 2024-08-11 12:05:21 · 934 阅读 · 0 评论 -
Redis之分布式锁
分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。分布式锁的核心是实现多进程之间互斥,而满足这一点的方式有很多,常见的有三种:实现分布式锁时需要实现的两个基本方法:释放锁:手动释放超时释放:获取锁时添加一个超时时间需求:定义一个类,实现下面接口,利用Redis实现分布式锁功能。简单实现redis分布式锁:改造上一章中加synchronized锁的代码:使用Redis分布式锁三、Redis分布式锁误删问题1. 误删问题分析线程1先获取锁后,由于业务阻塞还没执行完原创 2024-07-13 22:05:19 · 1012 阅读 · 0 评论 -
Redis常见命令总结
对于 Redis 中的列表数据,一般是以 l 开头,为了方便记忆,可以理解成是 List,或者是 Left 中的 L,为什么要提 Left 以及说一般是以 l 开头呢,因为有一些操作是 r 开头,这个表示是对列表的右边进行数据操作。其中,value 可以是字符串,也可以是数字,对于数字 Redis 会自动识别,且可以使用一些字符串没有的操作,比如增加、减少等。对于字符串类型的数据,可以存储字符串也可以存储整数,对于整数,有一些额外的操作,比如自增1,自减1,自增n,自减n。原创 2024-07-09 01:23:36 · 1413 阅读 · 3 评论 -
怎么实现Redis的高可用
我们在项目中使用Redis,肯定不会是单点部署Redis服务的。因为,单点部署一旦宕机,就不可用了。为了实现高可用,通常的做法是,将数据库复制多个副本以部署在不同的服务器上,其中一台挂了也可以继续提供服务。Redis 实现高可用有三种部署模式:主从模式,哨兵模式,集群模式。原创 2024-07-07 19:34:42 · 863 阅读 · 5 评论 -
Redis的持久化机制
Redis是基于内存的非关系型K-V数据库,既然它是基于内存的,如果Redis服务器挂了,数据就会丢失。为了避免数据丢失了,Redis提供了持久化,即把数据保存到磁盘。原创 2024-07-07 16:33:09 · 1305 阅读 · 3 评论 -
什么是缓存击穿、缓存穿透、缓存雪崩?
什么是热Key呢?在Redis中,我们把访问频率高的key,称为热点key。如果某一热点key的请求到服务器主机时,由于请求量特别大,可能会导致主机资源不足,甚至宕机,从而影响正常的服务。而热点Key是怎么产生的呢?用户消费的数据远大于生产的数据,如秒杀、热点新闻等读多写少的场景。请求分片集中,超过单Redi服务器的性能,比如固定名称key,Hash落入同一台服务器,瞬间访问量极大,超过机器瓶颈,产生热点Key问题。那么在日常开发中,如何识别到热点key呢?凭经验判断哪些是热Key;原创 2024-07-06 12:43:09 · 1180 阅读 · 0 评论 -
Redis为什么这么快?
虚拟内存机制就是暂时把不经常访问的数据(冷数据)从内存交换到磁盘中,从而腾出宝贵的内存空间用于其它需要访问的数据(热数据)。多路I/O复用技术可以让单个线程高效的处理多个连接请求,而Redis使用用epoll作为I/O多路复用技术的实现。并且,Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间。我们都知道内存读写是比在磁盘快很多的,Redis基于内存存储实现的数据库,相对于数据存在磁盘的MySQL数据库,省去磁盘I/O的消耗。I/O :网络 I/O。原创 2024-07-03 01:28:14 · 676 阅读 · 0 评论 -
Redis快速入门
Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。键值(key-value)型,value支持多种不同的数据结构,功能丰富单线程,每个命令具备原子性低延迟,速度快(基于内存,IO多路复用,良好的编码)支持数据持久化支持主从集群,分片集群支持多语言客户端与MySQL数据库不同的是,Redis的数据是存在内存中的。原创 2024-07-02 01:11:39 · 636 阅读 · 5 评论