Redis
文章平均质量分 57
Redis
如我般骄傲
学习
展开
-
Redis进阶学习--03| Redis是如何工作的?
三、Redis是如何工作的?Redis 提供了高性能的数据存取功能,所以广泛应用在缓存场景中,既能有效地提升业务应用的响应速度,还可以避免把高并发大压力的请求发送到数据库层。如果 Redis 做缓存时出现了问题,比如说缓存失效,那么,大量请求就会直接积压到数据库层,必然会给数据库带来巨大的压力,很可能会导致数据库宕机或是故障,那么,业务应用就没有办法存取数据、响应用户请求了。关于Redis包括工作原理、替换策略、异常处理和扩展机制,有四个问题需要解决。Redis 缓存具体是怎么工作的?Redis原创 2021-11-16 23:19:28 · 775 阅读 · 0 评论 -
Redis进阶学习--03| 内存快照:宕机后,Redis如何实现快速恢复?
三、内存快照:宕机后,Redis如何实现快速恢复?一.什么是内存快照Redis 数据丢失可以使用 AOF 方法进行恢复,但是如果数据量过大,恢复的效率就很慢,因此需要另一种持久化方法:内存快照。所谓内存快照,就是指内存中的数据在某一个时刻的状态记录。这就类似于照片,当你给朋友拍照时,一张照片就能把朋友一瞬间的形象完全记下来。内存快照可以理解为数据库中的库备份。...原创 2021-11-16 17:31:36 · 737 阅读 · 0 评论 -
Redis进阶学习--02| AOF日志:宕机了,Redis如何避免数据丢失?
一、AOF 日志是如何实现的(Redis是追求速率优先的设计,先执行命令,后写入日志(磁盘))AOF日志与Redis命令执行的顺序是先执行命令写入内存,之后再写入日志中。写后日志这种方式,就是先让系统执行命令,只有命令能执行成功,才会被记录到日志中,否则,系统就会直接向客户端报错。所以,Redis 使用写后日志这一方式的一大好处是,可以避免出现记录错误命令的情况。除此之外,AOF 还有一个好处:它是在命令执行后才记录日志,所以不会阻塞当前的写操作。不过,AOF 也有两个潜在的风险。首先,如果刚执行完原创 2021-11-16 17:25:08 · 834 阅读 · 0 评论 -
RedisUtil(大佬发的Redis封装工具类)
import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.ste原创 2021-06-22 10:32:58 · 245 阅读 · 0 评论 -
Redis进阶学习--01| 数据结构:快速的Redis有哪些慢操作?
一、Redis数据结构有哪些?Redis的数据类型有五种:分别是String(字符串)List(列表)Hash(哈希)Set(集合)Sorted Set(有序集合)这五种数据类型的底层数据结构有以下六种,分别是简单动态字符串双向链表压缩列表哈希表跳表整数数组。它们和数据类型的对应关系如下图所示:,String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们原创 2021-02-01 17:10:59 · 131 阅读 · 0 评论 -
Redis基础学习(十三):Redis缓存穿透、缓存击穿和缓存雪崩
一、缓存穿透一.概述key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。二.解决方案1、布隆过滤器(进阶的时候再学和写细一些)布隆过滤器是一种数据结构,对于所有可能要查询的参数以hash形式存储,在控制层进行校验,避免对底层数据库的查询压力。布隆过滤器的原理是,当一个元素被加入集合时,通过k个散列函数将这个元素映射成一个位数组(位阵列 Bit array)中的k个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中原创 2021-02-01 16:23:46 · 187 阅读 · 0 评论 -
Redis基础学习(十二):Redis哨兵模式
一、概述哨兵模式主要是基于前面用到的主从模式进行改造的,由于主从模式的缺陷(主机挂了,从机需要手动切换成主机),所以哨兵模式弥补了这以缺陷。Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中。sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该m原创 2021-02-01 15:41:54 · 589 阅读 · 0 评论 -
Redis基础学习(十一):Redis主从复制
一、概述主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。一.主从复制的作用1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。2、故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。原创 2021-01-28 16:06:04 · 296 阅读 · 0 评论 -
Redis基础学习(十):Redis发布订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。序号指令意义1SUBSCRIBE channel [channel …]订阅一个或者多个频道的信息2PUBLISH channel message将信息发送到指定的频道3UNSUBSCRIBE [channel [channel …]]退订给定的频道。4psubscribe patt原创 2021-01-28 15:59:20 · 140 阅读 · 0 评论 -
Redis基础学习(九):Redis持久化
一、概述Redis是内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。二、持久化流程(1)客户端向服务端发送写操作(数据在客户端的内存中)。(2)数据库服务端接收到写请求的数据(数据在服务端的内存中)。(3)服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)。(4)操作系统将缓冲区中的数据转移到磁盘控制器原创 2021-01-27 17:24:07 · 248 阅读 · 0 评论 -
Redis基础学习(八):Redis.conf配置
# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf# Note on units: when memory size is needed, it is possible to原创 2021-01-26 20:44:27 · 634 阅读 · 0 评论 -
Redis基础学习(七):SpringBoot整合Redis
一、Maven依赖1、SpringBootRedis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>2、其他项目依赖<dependenc原创 2021-01-26 20:39:46 · 271 阅读 · 0 评论 -
Redis基础学习(六):JAVA操作Redis之Jedis
Jedis1、概述Jedis是Redis官方推荐的Java连接开发工具。要在Java开发中使用好Redis中间件,必须对Jedis熟悉才能写成漂亮的代码2、基本使用1、pom依赖 <!-- 阿里JSON解析器 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</arti原创 2021-01-26 10:23:14 · 370 阅读 · 0 评论 -
Redis基础学习(五):Redis中的事务
事务Redis的单条命令保证原子性,事务不保证原子性!事物的本质:一组命令的集合,一个事务中所有的命令都会被序列化,在事务执行的过程中,会按照顺序进行执行!事务的特性:一次性(单次),顺序性(有顺序),排他性(排除干扰)。Redis的事务没有隔离级别的概念!所有的命令都在事务中,并没有被立刻执行,只有在发起执行命令的时候才会执行。redis的事务开启事务(multi)命令入队()执行事务(exec)取消事务(discard)redis的事务异常1、取消事务开启事务,进行入队,未原创 2021-01-25 22:18:38 · 140 阅读 · 0 评论 -
Redis基础学习(四):Redis三种特殊数据类型(暂时不想写这个)
三种特殊数据类型一、Geospatial(地理位置)相关命令序号指令参数含义1GEOADD添加地理位置2GEODIST3GEOHASH4GEOPOS5GEORADIUS6GEORADIUSBYMEMBERColumn 1Column 2centered 文本居中right-aligned 文本居右二、HyperLogLog(基数统计)三、Bitmap(位图,byte 数组)原创 2021-01-25 21:01:58 · 80 阅读 · 0 评论 -
Redis基础学习(三):Redis五种常用数据类型
基础知识redis默认有16个数据库,默认使用的是第0个,可以使用select 进行切换Redis默认是单线程的,在小于6版本都是单线程的,6版本默认单线程,但是可以开启多线程。Redis的性能瓶颈不是CPU性能,二室机器的内存和网络带宽,所以默认采用单线程。Redis是将所有数据都放在内存之中的,对于内存程序来讲单线程是默认最佳方案。基本命令设置过期时间EXPIRE+key+SECOND;查询当前KEY的剩余有效时间TTL+KEY切换数据库:select +number(第N个数据库)原创 2021-01-20 15:39:57 · 309 阅读 · 0 评论 -
Redis基础学习(二):benchmark性能测试
redis-benchmark是一个压力测试工具,官方自带的性能测试工具。redis性能测试工具可选参数如下:序号选项描述默认值1-h指定服务器主机名127.0.0.12-p指定服务器端口63793-s指定服务器 socket4-c指定并发连接数505-n指定请求数100006-d以字节的形式指定 SET/GET 值的数据大小27-k1=keep alive 0=reconnect18-rSE原创 2021-01-20 09:45:46 · 276 阅读 · 0 评论 -
Redis基础学习(一):下载安装和启动
目录Redis基础学习(一)Redis基础学习(二)Redis基础学习(三)Redis基础学习(四)概述Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。当下最热门的NoSQL技术。redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、se原创 2021-01-19 21:48:42 · 305 阅读 · 0 评论