文章目录前言Redis 基本特性Redis应用场景Redis核心编码结构StringRedisDb 数据结构ListziplistquicklistHashSetintsetSetZSetGeoHash算法GeoHash经纬度编码GeoHash经纬度编码GeoHash经纬度编码GeoHash经纬度编码GeoHash优缺点 前言记录redis入门Redis 基本特性关系型的键值对数据库,可以根据键
Redis Server跑在单进程单线程中,接收到的命令操作都是按照顺序线性执行的,即便如此,它的读写性能依然能达到10W+的QPS,不得不说:Redis设计十分优秀。为什么Redis的读写性能这么高呢?原因有许多,我们列举主要的三个:1、Redis基于内存操作:绝大部分的请求为纯粹的内存操作,而且使用hash结构存储数据,查找和操作的时间复杂度均为O(1)。2、Redis数据结构简单:redi
转载 2023-08-16 21:12:54
148阅读
# Redis设计模式 Redis是一种高性能的键值存储数据库,它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。除了作为常规键值存储之外,Redis还可以用作缓存、消息队列、计数器和分布式锁等。在本文中,我们将探讨一些常用的Redis设计模式,并提供相应的代码示例。 ## 1. 缓存模式 Redis最常见的用途之一是作为缓存层,用于减轻数据库的负载。当有请求需要查询数据库时,我们
原创 2023-07-21 10:45:15
119阅读
Redis架构设计目前流行的四种模式一、一致性Hash二、Redis哨兵模式三、Codis四、Redis_cluster五、Codis集群和Redis_cluster的优劣对比 目前流行的四种模式读者们,你们好!目前流行的Redis架构主要有四种,分别为:一致性Hash、Redis哨兵模式、Codis、Redis_cluster。一、一致性Hash 普通的Hash算法:对应于不同的数据,会精确的
转载 2023-07-13 00:13:58
99阅读
开头设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。在项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。什么是Redis的持久化我们知道Redis的数据
转载 2023-11-03 11:10:06
45阅读
目录1、数据结构和内部编码1-1、redisobject对象1-1-1、type字段1-1-2、encoding字段1-1-3、lru字段1-1-4、refcount字段1-1-5、*ptr字段2、Redis中的线程和IO模型2-1、socket2-2、I/O多路复用程序2-3、文件事件分派器2-4、文件事件处理器3、Redis6中的多线程3-1、Redis6.0之前的版本真的是单线程吗3-2、R
最近看了Redis设计与实现,这本书写的还不错,看完后对Redis的理解有很大的帮助。另外,作者整理了一份Redis源码注释,大家可以clone下来阅读。 Redis是开源的缓存数据库,由于其高性能而受到大家的欢迎。同时,它的代码量只有6w多行,相比起mysql动则上百万行的代码量,实现比较简单。 Redis中有很多方面都很有意思,在这篇文章中我想探讨的是Redis中的Reactor模式。 从
转载 2023-10-19 17:27:24
46阅读
前面三篇博客基本上实现了通用缓存的设计。但是在实际开发中,一般将数据不经常改动的业务(比如查询业务)做成缓存,把增删改业务执行完后从缓存中删除掉,通过再次查询把结果纳入缓存,就实现了缓存的实时更新。解决方案:设计一个后置通知,在完成增删改操作业务后,把缓存中的数据删除掉,redis缓存中有很多的数据,怎么保证只删除某一模块的数据呢?例如只删除User模块的数据,其他的数据不动此时就要考虑到存入re
一、设计模式1.单例模式2.原型模式3.工厂模式4.代理模式设计模式:为了提高代码的可重用性,可读性,可维护性,具有低耦合高聚合的性能二、关于redis1.什么是redis?   Redis 是一个基于内存的高性能key-value数据库。   2.Reids的特点     Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行
转载 2023-07-11 11:07:16
72阅读
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合
第一章:数据库设计规范 一、数据库命名规范总结 1、所有数据库对像名称必须 小写 2、命名要做到见名识意,禁止使用MySQL保留关键字 3、临时表以tmp_开头,备份表以bak_开头并以时间戳结尾 4、所有存储相同数据的列名和列类型必须一致 二、数据库基本设计规范总结 1、所有表必须使用Innodb存储引擎 2、所有表及字段都要有备注信息,并使用UTF-8字符集 3、要做到尽量控制单表大小(数据量
转载 2023-07-03 14:14:06
37阅读
一、Redis对象结构Redis中的每个对象都由一个redisObject结构表示: typedef struct redisObject { unsigned type;//类型 unsigned encoding;//编码 void *ptr;//指向底层实现数据结构的指针 int refcount;//引用计数 unsigned lru;//对象最后一次被程序访问的时间 } 1. typ
1. 背景最近在看redis源码,主体流程看完了。 在网上看到了reactor模式,看了一下,其实我们经常使用这种模式。2. 什么是reactor模式反应器设计模式(Reactor pattern)是一种为处理并发服务请求,并将请求提交到一个或者多个服务处理程序的事件设计模式。 当客户端请求抵达后,服务处理程序使用多路分配策略,由一个非阻塞的线程来接收所有的请求,然后派发这些请求至相关的工作线程进
目录简单动态字符串(SDS:simple dynamic string)应用场景SDS定义SDS与C字符串的区别链表链表实现字典字典的实现普通状态下的字典哈希算法Rehash渐进式Rehash跳跃表使用场景跳跃表实现整数集合整数集合的实现压缩列表压缩列表构成连锁更新简单动态字符串(SDS:simple dynamic string)当Redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字
# Redis设计模式中的应用 Redis是一种高性能的键值数据库,常用于缓存、消息队列和数据存储等场景。在使用Redis时,合理的设计模式可以帮助我们更好地管理数据,提升效率。本文将逐步帮助你理解如何在项目中使用Redis设计模式,并提供相关代码示例。 ## 主要步骤 下面是实现Redis设计模式的基本步骤: | 步骤 | 说明 | |-
原创 8月前
38阅读
# Redis中的设计模式及其应用 Redis是一种开源的内存数据存储,用于缓存、消息代理、数据库等场景。它提供了多种数据结构,包括字符串、哈希、列表、集合和有序集合,这使得Redis成为很多项目的首选。除此之外,Redis设计上也使用了多种设计模式,增强了系统的可扩展性、可维护性和性能。 ## 1. 单例模式 单例模式确保一个类只有一个实例,并为全球提供访问点。在Redis中,通常使用单
原创 2024-09-30 05:01:54
38阅读
数据库(数据表)的设计思想所谓数据库的设计,通常就是指数据表(多个数据表)的设计,也就是表结构的设计,以及需要哪些表。这种设计基本都是由每一个具体的项目功能来决定的。需要确定一个项目会用到哪些“现实数据”,以及为实现这些功能还需要创建(或定义)哪些数据才可以到达功能目标。这也就构成了一个项目的数据库设计工作。数据库设计工作通常都是一个项目在技术层面最为重要和基础的工作。数据库设计未定下来之前,后续
# 熟悉 MySQL 设计模式 作为一名刚入行的小白,掌握 MySQL 设计模式是非常重要的,它将帮助你更好地理解数据库设计和管理。以下是你需要了解的步骤和代码示例,帮助你快速入门。 ## 整体流程 首先,我们通过表格整理出整个学习过程的步骤: | 步骤 | 描述 | |------|------| | 1 | 理解数据库模型的基本概念 | | 2 | 学习关系型数据库设计原则
原创 2024-10-23 05:16:11
13阅读
文章目录一、redis简介1.1 基本数据结构(6种)1.2 对象系统(5种)二、简单动态字符串(simple dynamic string,SDS)2.1. SDS定义2.2 SDS与C字符串的区别2.2.1 SDS常熟复杂度获取字符串长度2.2.2 SDS 杜绝缓冲区溢出2.2.3 减少修改字符串带来的内存重分配次数1. 空间预分配2. 惰性空间释放2.2.4 二进制安全2.2.5 兼容部分
单机数据库的实现 单机数据库的实现数据库1 服务器中的数据库2 切换数据库3 数据库键空间4 设置键的生存时间或过期时间41 保存过期时间42 移除过期时间43 计算并返回剩余生存时间44 过期键的判定5 过期键删除策略51 定时删除52 惰性删除53 定期删除6 AOFRDB和复制功能对过期键的处理61 rdb文件62 AOF文件写入63 复制7 RDB持久化71 rdb文件的创建和载入72 自
转载 2023-08-11 11:11:24
50阅读
  • 1
  • 2
  • 3
  • 4
  • 5