
Redis实战
Redis安装、数据类型、持久化、集群、主从复制等,缓存雪崩等
寒泉Hq
当你试图解决一个你不理解的问题时,复杂化就产生了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis实战(八):面试常问:击穿,穿透,雪崩,分布式锁,API(jedis,luttce,springboot:low/high level)
缓存击穿作为缓存,受到内存大小限制,可能:key 超过了过期时间key 被 LRU LFU 清掉了因为某些 key 不在 redis 里面了,大量并发来找这个 key 的时候,这时候客户端去直接请求数据库,这就是击穿。这个问题怎么解决?只要发现某个key不存在,就让所有对这个key的请求去抢一把锁。也就是说,让第一个找key的请求,执行一个setnx,类似于放一把锁。只有获得锁的人才能去数据库查,其他的请求让它们失败,sleep等待几秒钟之后,重新去 redis 取数据。这会存在一个问题原创 2020-07-01 00:11:13 · 68029 阅读 · 0 评论 -
Redis实战(七):redis的集群:主从复制、CAP、PAXOS、cluster分片集群 2
上节回顾上一节我们讲了AKF拆分原则,讲了Redis主从复制的方式,是X轴方向的拓展,实现了HA,但是没有解决单节点数据的容量有限问题。如何解决单节点数据容量的问题如果数据可以分类,交集不多,可以考虑按业务拆分如果数据没有办法划分拆解:采用sharding分片下面这三种方案都发生在客户端1、Hash+取模(几乎没人用)2、使用random随机分配节点,适合做消息队列3、使用kmeta一致性哈希,规划一个环形哈希环一致性哈希:https://www.jianshu.com/p/73原创 2020-06-29 15:33:10 · 70245 阅读 · 2 评论 -
Redis实战(六):Redis的集群:AKF,主从复制的概念引入,CAP,Sentinel 哨兵
单击、单节点、单示例存在的问题单点故障(物理机挂了,要等很久才能可用)容量有限压力过大解决方式AKF有XYZ三个轴,可以只发生一个,可以多个维度一起发生X轴:Redis示例的副本,数据库的副本…读写分离,增加备用性,解决单点故障的问题,全量镜像,不能解决容量有限的问题Y轴:对要存的数据按照不同的功能业务拆分,不同类别的数据分开存储,客户端实现指定查询哪个库,解决容量有限的问题Z轴:在按照业务拆分的前提下,如果又存不下了,可以基于一定的规则,将一个业务将数据再拆分,存储到不同的库里。数原创 2020-06-28 12:04:49 · 70110 阅读 · 0 评论 -
Redis实战(五):Redis的持久化RDB、fork、copyonwrite、AOF、RDB&AOF混合使用
补充一个知识缓存:数据可以丢,保证速度。数据库:数据是绝对不能丢的,保证速度+持久性,内存中的数据是掉电易失的。存储层:快照/副本日志文件$$优先级高于管道fork()fork是系统调用,copy on write是内核机制。写时复制在fork子进程的时候,只拷贝指针,并不发生内存的复制。只有当其中的某一个进程试图对该区域进行写操作时,内核就会在物理存储器中为子进程开辟一个新的物理页面,将需要写的区域将父进程的内容复制一份给子进程,然后对新的物理页面进行写操作。这时就是实现了原创 2020-06-26 18:51:49 · 72130 阅读 · 1 评论 -
Redis实战(四):redis的消息订阅、pipeline、事务、modules、布隆过滤器、缓存LRU
啤酒理论Buffer机制,减少没必要的来回调用前置知识只要和redis建立了连接,发送字符串,就能交互管道发布 / 订阅help @pubsub发送者订阅者 PSUBSCRIBE pattern [pattern ...] summary: Listen for messages published to channels matching the given patterns since: 2.0.0 PUBLISH channel message summa原创 2020-06-25 20:00:49 · 69176 阅读 · 0 评论 -
Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list
String类型(上节回顾)List 类型help @list查看帮助可以用List类型实现一个栈:lpush k1 a b c d e左边pushlpop k1 a b c d e左边pop(后进先出)可以用List类型实现一个队列:lpush k1 a b c d e左边pushrpop k1 a b c d e右边pop(先进先出)获取List中某个范围之间的所有元素(支持负向索引)LRANGE k1 0 -1:获取整个List所有关于List的命令:BLPOP key原创 2020-06-24 18:57:57 · 67907 阅读 · 0 评论 -
Redis实战(二):Redis 的 String 类型 & bitmap
Redis常用命令、数据类型查看帮助To get help about Redis commands type: "help @<group>" to get a list of commands in <group> "help <command>" for help on <command> "help <tab>" to get a list of possible help topics原创 2020-06-23 22:22:26 · 69536 阅读 · 0 评论 -
Redis实战(一):Redis一键安装脚本,Redis 介绍及 NIO 原理介绍
Redis一键安装并启动的脚本(root用户)试过用其他权限用户安装会出错,可能是因为命令中没有写 sudo切换到root,直接执行即可。#!/bin/bashcd /usr/local/ && wget http://download.redis.io/releases/redis-5.0.5.tar.gz && tar -zxvf redis-5.0.5.tar.gz && cd /usr/local/redis-5.0.5 &&原创 2020-06-22 18:26:57 · 65192 阅读 · 0 评论