小黄学redis
文章平均质量分 82
贼爱学习的小黄
这个作者很懒,什么都没留下…
展开
-
redis——缓存穿透、缓存击穿、缓存雪崩、分布式锁
redis应用问题解决缓存穿透什么是缓存穿透?可以参考下图,当客户端发送读的请求过来时,会先访问缓存中的数据,如果不存在则直接去访问MySQL服务器中的数据。这时候如果MySQL服务器中并不存在他请求对应的信息,请求就会反反复复一直访问MySQL服务器,黑客利用此漏洞进行攻击可能压垮数据库。解决方案方案一:缓存空值如果MySQL服务器中不存在相对应的数据,可以将对应的key的value值设置为空,当请求再次访问时可以直接去缓存中读取空值方案二:布隆过滤器在访问缓存层和存储层之前,将原创 2022-01-14 16:08:36 · 1327 阅读 · 2 评论 -
redis——集群
redis集群简介Redis 集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。作用容量不够,redis可以使用集群进行扩容并发写操作,一个服务器压力太大,集群可以分摊之前的集群是通过代理主机来解决,一台代理主机分配写操作给多台主机,在redis3原创 2022-01-13 17:32:44 · 190 阅读 · 0 评论 -
redis——主从复制
redis主从复制简介redis作为存储数据的数据库,主机更新后可以根据配置和策略,自动同步到从服务器上。说简单点,就是有一台主服务器,我们平时的写入操作可以在主服务器上,主服务器在执行完操作之后会将数据拷贝到设置的从服务器上,通俗理解“备份”作用读写分离,性能扩展。主服务器只接受写操作,读的操作让从服务器来进行。容灾快速恢复。其中有一台从服务器挂掉了,也可以从另外一台从服务器读取数据。使用主从复制例子:模拟三台服务器,端口为6379的服务器我们设置为主服务器,端口为6380、6380的原创 2022-01-12 17:37:20 · 382 阅读 · 0 评论 -
redis——持久化操作
redis持久化之RDB简介在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里备份是如何执行的Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能 如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最原创 2022-01-12 14:36:26 · 457 阅读 · 0 评论 -
redis——事务、锁机制、秒杀案例
事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。事务相关命令——Multi、Exec、discard从输入Multi命令开始,输入的命令都会依次进入命令队列,但不会执行,直到输入Exec命令后,redis才会将之前的命令队列中的命令依次执行组队过程中,可以使用discard来放弃组队事物的错误处理组队阶段报错,整个队列的命令都无法执行原创 2022-01-12 10:45:59 · 474 阅读 · 1 评论 -
redis——jedis的使用以及springboot整合redis
jedis简介jedis是Java用来链接redis的一个工具,可以通过jedis在Java程序中操作redis。使用方法修改配置文件首先外部需要访问虚拟机中的redis,而redis默认是只让本机访问的,需要在redis.conf中注释掉bind 127.0.0.1 ,然后将protected-mode设置为no。注意,配置文件修改之后需要重启redis才能生效引入相关依赖<dependency> <groupId>redis.clients</grou原创 2022-01-11 14:34:42 · 1036 阅读 · 0 评论 -
redis——基本数据类型
写在前面小黄最近换了一份工作,因工作时要用到一些性能优化的工具,所以对Linux的学习会暂且告一段落,接下来的2-3周内学习redis、rabbitMQ、mongoDB等相关知识。key键操作redis存储数据的格式类似于map,是以key-value键值对的形式存储的,在学习redis的常用数据结构之前,我们需要先学习key键的一些相关操作# set key value 添加键值对127.0.0.1:6379> set k1 v1OK127.0.0.1:6379> set原创 2022-01-11 09:07:44 · 227 阅读 · 0 评论