![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 87
深入理解Redis中各种原理,知其然知其所以然,通过Redis解决实际问题
试剑江湖。
做你没做过的事叫成长,做你不愿意做的事叫改变,做你不敢做的事叫突破。
展开
-
redis 缓存设计
缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!解决方式:Java中可以使用初始化白名单数据缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力。如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是缓存击穿的问题。Cache Aside(旁路缓存)策略;原创 2023-10-14 07:30:00 · 227 阅读 · 0 评论 -
redis 集群(cluster)
由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。Redis集群是一个提供在多个Redis节点间共享数据的程序集,Redis集群可以支持多个Master。相关材料redis集群知识点。原创 2023-09-19 07:00:00 · 273 阅读 · 0 评论 -
redis 哨兵(sentinel)机制
redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入。哨兵的核心功能是主节点的自动故障转移。Redis 在 2.8 版本以后提供的哨兵(Sentinel)机制,它的作用是实现主从节点故障转移。它会监测主节点是否存活,如果发现主节点挂了,它就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端。监控、选主、通知。原创 2023-09-18 08:00:00 · 245 阅读 · 0 评论 -
redis 主存复制
主存复制,就是master以写为主,slave以读为主,当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。这个模式可以保证多台服务器的数据一致性,且主从服务器之间采用的是「读写分离」的方式。主服务器可以进行读写操作,当发生写操作时自动将写操作同步给从服务器,而从服务器一般是只读,并接受主服务器同步过来写操作命令,然后执行这条命令。也就是说,所有的数据修改只在主服务器上进行,然后将最新的数据同步给从服务器,这样就使得主从服务器的数据是一致的。主要功能特性读写分离。原创 2023-09-17 07:00:00 · 107 阅读 · 0 评论 -
redis 事务
watch指令类似于乐观锁,在事务提交时,如果watch监控的多个KEY中任何KEY的值已经被其他客户端更改,则使用EXEC执行事务时,事务队列将不会被执行,同时返回Nullmulti-bulk应答以通知调用者事务执行失败。原创 2023-09-16 12:03:58 · 154 阅读 · 0 评论 -
redis 持久化机制
持久化、主存复制(及读写分离)、哨兵、以及集群几种技术分别解决了Redis高可用的什么问题?Redis的持久化技术,主要是RDB和AOF两种持久化方案;在介绍RDB和AOF方案时,不仅介绍其作用及操作方法,同时介绍持久化实现的一些原理细节及需要注意的问题。最后,介绍在实际使用中,持久化方案的选择,以及经常遇到的问题等。Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据永久丢失,需要定期将Redis中的数据以某种形式(数据/命令)从内存保存到磁盘;原创 2023-09-15 21:08:08 · 241 阅读 · 0 评论 -
redis 初识与入门
Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存消息队列分布式锁等场景。Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。除此之外,Redis 还支持事务持久化。原创 2023-09-12 23:00:05 · 366 阅读 · 0 评论 -
redis 核心数据结构
redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据结构。除此之外,通过复制、持久化和客户端分片等特性,用户可以很方便地将redis扩展成一个能够包含数百GB数据和每秒处理上百万次的请求的系统。目前支持多种语言的api,方便用户使用。原创 2023-09-10 14:07:30 · 302 阅读 · 0 评论 -
redis I/O多路复用机制
所谓 I/O 多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用就是为了解决这个问题而出现。优点:就是这种方式非常容易让人理解,写起代码来非常的自然,符合人的直线型思维。原创 2023-09-08 22:18:36 · 1371 阅读 · 0 评论 -
【Redis】Redis解决方案
常见问题 宕机后,Redis如何实现快速恢复?原创 2020-09-29 09:07:12 · 137 阅读 · 0 评论 -
【Redis】Redis配置
主要配置如下:#多网卡环境下,绑定指定网卡ip,只允许该网卡流量访问redis服务器bind 0.0.0.0#保护模式,默认yes开启,只允许bind设置的网卡流量访问服务器protected-mode yes#服务通讯端口port 7000#tcp连接ESTABLISHED状态的最大队列,不能大于Linux的somaxconn值。tcp-backlog 511#tcp连接空闲时间,达到空闲时间断开连接,0表示不断开。timeout 0#开启tcp长连接最大时间,单位秒,0表...转载 2021-01-25 20:17:33 · 203 阅读 · 0 评论 -
【架构设计】Redis 分布式锁
分布式锁实现:redis、zookeeper、redLock、redission等常见问题:锁超时(保证原子性),可重入(ThreadLocal+引用计数)原创 2020-09-19 12:21:32 · 638 阅读 · 0 评论 -
【Redis】Redis 答疑解惑
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。原创 2021-02-12 20:51:22 · 145 阅读 · 0 评论 -
【Redis】布隆过滤器
一、Redis 布隆过滤器场景分析假如我们在使用新闻客户端看新闻时,它会给我们不停的推荐新的内容,而它每次推荐时,都要去重,以去掉那些我们已经看过的内容。那么问题来了,新闻客户端推荐系统是如何实现推送去重的?你可能会想到:服务器已经记录了用户看过的所有历史记录,当推荐系统推送新闻时可以从每个用户的历史记录里进行筛选,以过滤掉那些已经存在的记录。问题是,当用户量很大、每个用户看过的新闻又很多的情况下,使用这种方式,推荐系统的去重工作在性能上能跟的上吗?实际上,如果历史记录存储在关系数据库里,去重就原创 2020-11-07 12:29:26 · 695 阅读 · 1 评论 -
【ClickHouse】Clickhouse中update/delete的使用
从使用场景来说,Clickhouse是个分析型数据库。这种场景下,数据一般是不变的,因此Clickhouse对update、delete的支持是比较弱的,实际上并不支持标准的update、delete操作。下面介绍一下Clickhouse中update、delete的使用。1. 更新和删除的语法Clickhouse通过alter方式实现更新、删除,它把update、delete操作叫做mutation(突变)。语法为:ALTER TABLE [db.]table DELETE WHERE转载 2021-05-20 22:44:05 · 19081 阅读 · 1 评论 -
【ClickHouse】clickhouse稀疏索引
MergeTree存储结构逻辑示意图MergeTree表的存储结构中,每个数据分区相互独立,逻辑上没有关联。单个数据分区内部存在着多个MergeTree Data Part。这些Data Part一旦生成就是Immutable的状态,Data Part的生成和销毁主要与写入和异步Merge有关。MergeTree表的写入链路是一个极端的batch load过程,Data Part不支持单条的append insert。每次batch insert都会生成一个新的MergeTree Data Pa转载 2021-05-20 08:43:52 · 2547 阅读 · 0 评论 -
【SQLServer】SQLServer 使用记录
一、SQL中常见用法1.1 常用函数(1)SQLServer 日期函数大全1.2SQL中Merge的用法(1)根据与源表联接的结果,对目标表执行插入、更新或删除操作(2) 使用Merge的场景:数据同步 数据转换 基于源表对目标表做Insert,Update,Delete操作(3) 案例 相关文章 在本地编译的存储过程中实现MERGE功能 ...原创 2020-10-14 09:27:52 · 221 阅读 · 0 评论