数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

加载中
置顶
架构师
发表了博客
2021/09/03 20:58

Redis技术专题系列之帮你从底层彻底吃透RDB技术原理(基础篇)

### 每日一句 > 低头是一种能力,它不是自卑,也不是怯弱,它是清醒中的嬗变。有时,稍微低一下头,或者我们的人生路会更精彩。 ### 前提概要 >**Redis是一个的键-值(K-V)对的内存数据库服务,通常包含了任意个非空数据库。而每个非空的键值数据库中又可以存放任意个K-V,基本的结构如下图所示:** ![](https://oscimg.oschina.net/oscnet/up-de5f89b3c84d1077892978f681d220091fb.png) - **Redis的强劲性能很大程度上是由于其... 展开更多

收藏 4
0
置顶
发表了博客
2021/09/09 10:13

Redis的事务满足原子性吗?

谈起数据库的事务来,估计很多同学的第一反应都是`ACID`,而排在`ACID`中首位的`A`原子性,要求一个事务中的所有操作,要么全部完成,要么全部不完成。熟悉redis的同学肯定知道,在redis中也存在事务,那么它的事务也满足原子性吗?下面我们就来一探究竟。 ### 什么是Redis事务? 和数据库事务类似,redis事务也是用来一次性地执行多条命令。使用起来也很简单,可以用`MULTI`开启一个事务,然后将多个命令入队到事务的队列中,最... 展开更多

收藏 2
0
置顶
发表了博客
2021/09/01 15:01

面试官:你说你精通Redis,你看过持久化的配置吗?

前边我们已经介绍了`Redis`**五种数据类型的命令**与**配置文件的基本配置**,今天让我们从理论和配置两个层面来揭开`Redis`持久化的神秘面纱。 所谓持久化可以简单理解为将内存中的数据保存到硬盘上存储的过程。持久化之后的数据在系统重启或者宕机之后依然可以进行访问,保证了数据的安全性。 `Redis`有两种持久化方案,一种是快照方式(`SNAPSHOTTING`),简称`RDB`;一种是只追加模式(`APPEND ONLY MODE`),称为AOF。接下... 展开更多

收藏 6
0
置顶
发表了博客
2021/08/25 11:18

万字总结redis知识点

redis数据类型剖析 1.string sds数据结构,采用空间预分配和惰性空间释放来提升效率,缺点就是耗费内存。 struct sdshdr { int len; //长度 int free; //剩余空间 char buf[]; //字符串数组 }; 复制代码 空间预分配:当一个sds被修改成更长的buf时,除了会申请本身需要的内存外,还会额外申请一些空间。 惰性空间:当一个sds被修改成更短的buf时,并不会把多余的内存还回去,而是会保存起来。 总结:这种设计的...... 展开更多

收藏 19
3
置顶
高级程序员
发表了博客
2021/08/24 16:16

Redis 实战篇:巧用Bitmap 实现亿级海量数据统计

在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合。 常见的场景如下: 给一个 userId ,判断用户登陆状态; 显示用户某个月的签到次数和首次签到时间; 两亿用户最近 7 天的签到情况,统计 7 天内连续签到的用户总数; 通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万、千万级别的用户数量,或者千万级别、甚至亿级别的访问信息。 所以,我们必须要选择能够非常高效地统计大量数据... 展开更多

收藏 32
5
置顶
发表了博客
2021/08/10 17:37

真枪实弹!Redis 「冷备」让您睡个安稳觉zZ

大家好,我是悟空呀。 Redis 的 RDB 持久化方案,相信大家都有所了解,但是对于企业来说,如果只是持久化了一个 RDB 文件,不足以应付生产级别的事故。 通常的方案就是对 RDB 进行多个备份,今天带大家来真枪实弹操作下 RDB 的冷备,以及通过 RDB 进行数据恢复。学会了这招,今晚可以好好睡觉了吗? 企业级冷备方案 Redis RDB 持久化是非常适合做企业级的冷备方案的,这里的冷备可以理解为将已生成的文件拷贝到其他机器或者云服... 展开更多

收藏 4
2
置顶
发表了博客
2021/08/06 13:47

使用 Redis 的一些最佳实践

回复 redis 领取电子版 大家好,我是悟空呀。 看过阿里的 Java 使用手册的同学,都比较熟悉里面的使用规范,主要有三种建议:强制,参考,推荐。不得不说那本手册真的很棒。 而对于 Redis 我们是不是也可以整理一份这样的手册呢?下面我进行了一些总结,希望对大家有所帮助。当然如果大家觉得这些规范不合理,请到 github 上提交 issue,或者加我微信联系:passjava。本手册会持续更新,欢迎关注。 Github: https://github.com... 展开更多

收藏 12
1
置顶
高级程序员
发表了博客
2021/07/20 17:09

Redis 6.0 新特性:带你 100% 掌握多线程模型

Redis 官方在 2020 年 5 月正式推出 6.0 版本,提供很多振奋人心的新特性,所以备受关注。 码老湿,提供了啥特性呀?知道了我能加薪么? 主要特性如下: 多线程处理网络 IO; 客户端缓存; 细粒度权限控制(ACL); RESP3 协议的使用; 用于复制的 RDB 文件不在有用,将立刻被删除; RDB 文件加载速度更快; 其中备受关注的就是「多线程模型 + 客户端缓存」,我们只有掌握了新特性原理,才能判断什么时候使用 6.0 版本,如何用的... 展开更多

收藏 12
1
置顶
发表了博客
2021/07/21 19:22

Redis 帝国的神秘使者,竟然想改造 C 语言!

你好,我是悟空。 迎接使者大人 “吁····” 这声音从一辆豪华马车中传出,拉车的两匹马儿听到后,立马停在了路边。 “先生,可有什么不对劲?”车夫谨慎地问道。 车中的一位年轻帅小伙拉开了车门前的帘布,说道:“前方有一只百人军队正在赶来,想必是 C 语言帝国的皇家护卫军。” 一小会的功夫,前方百人军队正骑着马来到了马车前。 一名身材魁梧,八尺高,手持一柄长枪的士兵从马背上下来了。 “我是 C 语言帝国的皇家护卫... 展开更多

收藏 1
3
置顶
发表了博客
2021/07/23 09:23

MySQL和Redis如何保证数据一致性?

前言 由于缓存的高并发和高性能已经在各种项目中被广泛使用,在读取缓存这方面基本都是一致的,大概都是按照下图的流程进行操作: 但是在更新缓存方面,是更新完数据库再更新缓存还是直接删除缓存呢?又或者是先删除缓存再更新数据库?在这一点上就值得探讨了。 一致性方案 在实际项目开发中需要保证数据库和缓存中的数据一致,否则人家充值了100块,不断刷新却还是显示0.01元,岂不是尴尬?从理论上来说,为缓存设置过期时间是... 展开更多

收藏 18
3
置顶
发表了博客
2021/07/20 09:09

【redis】为什么整数集升级后不能在进行降级操作 | intset位升级频率

前言 整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构。内部结构是redis五大结构重要支撑! 前面我们分别从redis内部结构分析了redis的List、Hash、Zset三种数据结构了。今天我们再来分析set数据结构内部是如何存储的 基本结构 在src/t_set.c中我们发现这样一段代码 由此我们可知在set中是由两种数据结构构成的: hashtable+intset 。关于redis内部其他的结构我专... 展开更多

收藏 0
0
置顶
发表了博客
2021/06/22 16:50

redis的内存满了之后,redis如何回收内存

作者:沈熠辉 来源:恒生LIGHT云社区 Redis使用场景 现在公司的业务越来越复杂,我们需要抽出一个用户系统,向各个业务系统提供用户的基本信息。 业务方对用户信息的查询频率很高,一定要注意性能问题哦。 用户信息当然是存放在数据库里,但是由于我们对用户系统的性能要求比较高,显然不能在每一次请求时都去查询数据库。 所以,在内存中创建了一个哈希表作为缓存,每当查找一个用户时会先在哈希表中进行查询,以此来提高访问的... 展开更多

收藏 12
1
置顶
发表了博客
2021/06/21 14:14

聊聊 Redis 内存淘汰策略

这一期咱们一起来看看 Redis 的内存淘汰策略~ 为什么要有内存淘汰机制 大家都知道 Redis 中的键会设置过期时间,当到达过期时间时会通过一定策略清除对应 key,但是 redis 内存是由上限的,当达到内存上限时,就要通过一定策略淘汰掉相应 kv 键值对。 Redis 内存上限 maxmemory 配置选项使用来配置 Redis 的存储数据所能使用的最大内存限制。可以通过在内置文件redis.conf中配置,也可在Redis运行时通过命令CONFIG SET来配置。例... 展开更多

收藏 6
1
置顶
发表了博客
2021/06/19 16:48

Redis源码剖析之GEO——Redis是如何高效检索地理位置的?

Redis GEO 用做存储地理位置信息,并对存储的信息进行操作。通过geo相关的命令,可以很容易在redis中存储和使用经纬度坐标信息。Redis中提供的Geo命令有如下几个: - geoadd:添加经纬度坐标和对应地理位置名称。 - geopos:获取地理位置的经纬度坐标。 - geodist:计算两个地理位置的距离。 - georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 - georadiusbymember:根据储存在位置集合里面的某个地点获取... 展开更多

收藏 6
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
返回顶部
顶部