随笔分类 -  redis

redis缓存技术
摘要:什么是Tendis? Tendis是腾讯研发的分布式高性能KV存储数据库,容Redis核心数据结构与接口,适用于兼容Redis协议,需要大容量高访问性能的温冷数据存储场景。 适用场景: 兼容Redis协议,需要大容量且有高持久化要求的业务场景。 适合成本为主要考虑因素、业务数据有高持久化要求的业务场 阅读全文
posted @ 2021-05-09 23:27 smallzhen 阅读(1186) 评论(0) 推荐(0) 编辑
摘要:以下介绍redis的几种类型:List、Pub/Sub、Stream 场景 List Pub/Sub Stream 阻塞式消费 支持 支持 支持 发布/订阅 不支持 支持 支持 重复消费 不支持 不支持 支持 持久化 支持 不支持 支持 消息堆积 内存持续增长 缓冲区溢出,消费者强制下线 可控制队列 阅读全文
posted @ 2021-04-23 23:43 smallzhen 阅读(489) 评论(0) 推荐(0) 编辑
摘要:为了避免内存中数据丢失,redis提供了对持久化的支持,redis提供了RDB和AOF两种不同的数据持久化方式。 RDB:快照存储持久化方式,将Redis某一时刻的内存数据保存到硬盘的文件中,默认文件名为dump.rdb。当redis服务器启动时会重新加载dump.rdb文件的数据到内存中。 过程为 阅读全文
posted @ 2021-04-06 23:52 smallzhen 阅读(54) 评论(0) 推荐(0) 编辑
摘要:我们知道redis支持很多种结构的数据,那么如何使用redis作为异步队列使用呢? 使用list结构,rpush生产消息,lpop消费消息。 lpop没有消息的时候,可适当sleep后重试。 若不使用sleep方案,可使用blpop消费消息,它会阻塞直至消息到来。 pub/sub的主题订阅者模式的优 阅读全文
posted @ 2021-03-31 23:13 smallzhen 阅读(1201) 评论(0) 推荐(0) 编辑
摘要:在使用redis的时候,总是被告知keys命令慎用,到底是什么原因要慎用keys呢? 由于redis是单线程的,当redis正在给线上的业务提供服务时,使用keys命令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕才能恢复服务。 参考https://mp.weixin.qq.com/s/H 阅读全文
posted @ 2021-03-30 22:04 smallzhen 阅读(268) 评论(0) 推荐(0) 编辑
摘要:redis支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。 redis不仅支持key-value类型,还提供list、set、zset、hash等数据结构。memcache只支持key-value类型 redis支持数据备份,即主从多副本模式 redis的数据比memca 阅读全文
posted @ 2021-03-29 22:51 smallzhen 阅读(56) 评论(0) 推荐(0) 编辑
摘要:看到一篇总结的很好的一篇博文,于是做个小结 redis大多数时候是单线程运行的(同一个时间只占用一个CPU,只有一个指令在运行,即不可能并行读写),但是redis性能还是很好,原因如下: redis使用了 多路I/O复用机制(详看我的另一篇博客多路复用机制),处理客户端请求时,不会阻塞主线程。red 阅读全文
posted @ 2021-03-18 00:18 smallzhen 阅读(255) 评论(0) 推荐(0) 编辑
摘要:mysql与redis同步可以分为三种方案: 通过外部应用程序控制:当写入mysql时,自动将redis同数据删除,等到查询时在Redis查不到再落到mysql查回数据后再写入redis。 通过mysql自动同步刷新Redis,Mysql触发器+UDF函数实现。适合读多写少,不适合并发写场景。 解析 阅读全文
posted @ 2021-03-06 20:21 smallzhen 阅读(1967) 评论(0) 推荐(0) 编辑
摘要:redis是单线程模型实现的,即redis使用一个线程处理所有客户端请求。因此以下操作提升Redis运行速度 缩短键值对的存储长度 使用延迟删除特性 设置键值过期时间 禁用长耗时的查询命令 避免大量数据同时失效 限制redis内存大小 使用分布式加购来增加读写速度 以上总结参考:https://mp 阅读全文
posted @ 2021-03-05 00:04 smallzhen 阅读(175) 评论(0) 推荐(0) 编辑
摘要:什么是主从复制? 指将一台redis服务器(主节点,master)的数据复制到其他redis服务器(从节点,slave)。数据的复制是单向的,从主节点到从节点。 主从复制的作用: 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 故障恢复:主节点出现问题时可由从节点提供服务,实 阅读全文
posted @ 2021-02-22 23:00 smallzhen 阅读(46) 评论(0) 推荐(0) 编辑
摘要:缓存预热 指系统上线后,将相关的缓存数据直接加载到缓存系统中,可以避免用户请求时先查询数据库再将数据回写缓存。 不预热的危害:系统上线初期,高并发的流量会直接访问数据库给数据库造成流量的压力。 方案: 数据量不大:工程启动时进行加载缓存。 数据量大:设置定时任务,进行缓存刷新。 数据量过大:优先保证 阅读全文
posted @ 2021-02-21 23:43 smallzhen 阅读(374) 评论(0) 推荐(0) 编辑
摘要:常见的缓存异常场景有:缓存穿透、缓存击穿、缓存雪崩等,下面总结一下几种常见的异常。 缓存穿透 概念:缓存穿透是指用户请求的数据在缓存中没有命中,在数据库中也不存在,导致用户每次请求该数据都要直接去数据库中查一遍再返回空。 危害:恶意攻击者可以不断请求系统中不存在的数据导致大量请求落在数据库上造成数据 阅读全文
posted @ 2021-02-21 23:32 smallzhen 阅读(308) 评论(0) 推荐(0) 编辑
摘要:部署多个实例以分摊写数据压力,以支撑更大的写流量,就是分片集群的原理。分片集群的架构模型如下: 分片规则: ①每个节点各自存储一部分数据,所有节点数据之和等于全量数据。 ②对于不同的key将路由到固定的实例上进行读写操作。 分片集群根据路由规则的位置分为两类: 客户端分片:key的路由规则放在客户端 阅读全文
posted @ 2021-02-20 20:18 smallzhen 阅读(562) 评论(0) 推荐(0) 编辑
摘要:今天看了一下关于redis集群的文章,有关于集群及哨兵的概念,还是有必要总结一下笔记。 部署了多个redis实例的架构模型如下,实时读写master,slave实时从master同步回来。 采用多副本方案的优势:①缩短不可用时间,master宕机时可手动将slave提升为master继续提供服务。② 阅读全文
posted @ 2021-02-19 23:20 smallzhen 阅读(711) 评论(0) 推荐(0) 编辑
摘要:redis是一个字典结构的存储服务器,一个redis实例提供了多个用来存储数据的字典,每个字典都可以理解为一个独立的数据库。redis默认支持16个数据库,可以通过调整redis的配置文件 redis/redis.conf中的database来修改。 客户端与redis建立连接后会默认选择0号数据库 阅读全文
posted @ 2021-02-18 23:31 smallzhen 阅读(1005) 评论(0) 推荐(0) 编辑
摘要:读缓存的最佳实践:先读缓存,命中则返回,未命中则读数据库,然后设置缓存。 写缓存的最佳实践:①淘汰缓存,非修改缓存。②先操作数据库,再操作缓存。 缓存冗余了数据库中的数据,可能存在问题:缓存与数据库数据不一致。 不一致时优化思路是什么:及时清除缓存中的脏数据。 什么情况下优先选择使用redis而非m 阅读全文
posted @ 2021-02-17 23:02 smallzhen 阅读(49) 评论(0) 推荐(0) 编辑
摘要:我们都知道redis缓存时可以设置过期时间,那么redis是如何识别这个key已经过期并将该key清掉呢? 当redis的内存满了之后,为什么还可以继续写缓存呢?而某些key又会被清掉,是什么原因呢? 以上问题就涉及到了redis的过期策略和淘汰机制,我们可以来了解一下。 redis为什么要有淘汰机 阅读全文
posted @ 2020-04-18 22:02 smallzhen 阅读(9882) 评论(0) 推荐(0) 编辑
摘要:1、string(字符串) 与memcached一样,一个key对应一个value,key的最大存储值为512MB,value的最大存储值也为512MB。string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。使用设置和获取的命令为S 阅读全文
posted @ 2019-12-02 22:09 smallzhen 阅读(2443) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示