NoSQL为什么要使用NoSQL单个数据库架构下,数据存储的瓶颈是什么?数据量过大,一个机器放不下数据索引过大,一个机器的内存放不下读写混合情况下的访问量一个实例无法承受Web数据库架构的发展优化数据库的结构和索引,使用缓存技术缓解数据库的压力(Memcached+MySQL+垂直拆分)MySQL主从复制和读写分离分库分表+水平拆分+MySQL集群MySQL的扩展性瓶颈:扩展性差、大数据下IO压力
### 为什么不建议在redis中使用分库?
在Redis中,虽然可以使用`SELECT`命令来切换不同的数据库,但是并不建议在Redis中使用分库。下面我将从几个方面来解释为什么不建议分库。
#### 1. 内存消耗
在Redis中,每个数据库都会占用一部分内存空间,当我们在Redis中创建多个数据库时,每个数据库都会占用一定的内存空间。这样就会导致整体的内存消耗增加,可能会影响到Redi
原创
2024-03-08 06:28:02
241阅读
作为一名服务端工程师,工作中你肯定和 Redis 打过交道。Redis 为什么快,这点想必你也知道,至少为了面试也做过准备。很多人知道 Redis 快仅仅因为它是基于内存实现的,对于其它原因倒是模棱两可。那么今天就和小莱一起看看:思维导图 -基于内存实现这点在一开始就提到过了,这里再简单说说。Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数据库来说,是需要将数据读取
转载
2023-10-18 17:32:39
117阅读
1.优雅的Redis的Key结构Redish中的key虽然可以自定义,但是我们在命名的时候最好遵守以下规范遵循基本的格式 [业务名称]:[数据名称]:[id]。
优点
可读性强避免key的重读方便管理比如保存用户登录信息的key可以这样命名login:user:32不要包含特殊的字符长度不要超过44字节要求key的长度不小于44是因为在key的类型都是String,在redis的底
转载
2023-08-07 23:26:44
171阅读
前言:redis cluster是redis分布式解决方案,集群通过分片来进行数据共享,并提供复制和故障转移功能;redisCluster 也是学习分布式存储的绝佳案例目录一.数据分布二. redis集群功能的限制三.搭建集群四. 节点通信五. 集群伸缩六. 客户端请求路由七.clusterNode介绍八.故障转移一.数据分布分布式数据库首先要解决的问题是把整个数据集按照分
转载
2023-08-19 18:44:55
128阅读
为了使reids配置更优,在使用redis的时候需要注意一些规范,首先要注意,redis和任何cache都不适合写操作比较多的场景,只时候读多写少的场景。定义key的时候,加上前缀,防止不同业务的key冲突trade:order:cloth:Tshirt:10011不要再key里面加特殊字符,尽量的让key简洁,不要让key占太多空间user:{uid}:friends:messages:{mid
转载
2024-05-30 13:45:32
27阅读
根据redis英文文档学习一下redis,从最基础的开始。 首先,我们看第一个红框内,key太大不好,否则从内存和key比较这俩方面,花费会巨大。所以,当有个一很大的key时,可以把key进行sha1运算,再存储。其次,第二个红框内太短的key也不好,把user:1000:followers缩写为u1000flw,这样去节省key的空间是没有意义的。在key值得可读性和空间占用方面,自己
转载
2023-06-14 23:02:54
98阅读
【Redis】Redis分片集群 文章目录【Redis】Redis分片集群1. 搭建分片集群1.1 分片集群结构1.2 搭建分片集群1.2.1 集群结构1.2.2 准备实例和配置1.2.3 启动1.2.4 创建集群1.2.5 测试2. 散列插槽2.1 总结3. 集群伸缩4. 故障转移4.1 数据迁移5. RedisTemplate访问分片集群 1. 搭建分片集群1.1 分片集群结构主从和哨兵可以解
转载
2023-07-20 22:35:56
0阅读
文章目录面试题一、Redis简介1.1 Redis是什么1.2 常见数据类型二、底层数据结构2.1 简单动态字符串(SDS)2.2 双端链表2.3 字典2.4 跳跃表2.5 整数集合2.6 压缩列表三、持久化机制3.1 数据持久化的过程3.2 RDB3.2.1 save触发方式3.2.2 bgsave触发方式3.2.3 save与bgsave对比3.2.4 自动触发3.2.5 RDB 的优势
转载
2021-07-21 16:52:48
393阅读
来源:阿飞的博客写在前面:如果对分库分表还不是很熟悉的,可以参考笔者之前的文章《分库分表技术演进&最佳实践》。在这篇文章中提到了一个场景,即电商的订单。我们都知道...
转载
2021-07-21 16:52:31
198阅读
Flannel是为Kubernetes设计的一种简单易用的容器网络解决方案,将所有的Pod都组织在同一个子网的虚拟大二层网络中。Flannel支持的后端转发方式有许多种,本文将介绍其中两种,VXLAN以及host-gw。 1.VXLAN 简介 VXLAN (Virtual Extensible LAN)是一种网络虚拟化技术,它使用一种隧道协议,将二
转载
2024-04-18 14:35:39
279阅读
一、关于 redis key:1、是二进制安全的,也就是说,你可以使用任何形式的二进制序列来作为key,比如一个string,或者一个jpg图片的数据,需要说明的是,空字符串也是一个有效的key。2、不建议使用过长的key,影响内存占用及数据查性能,对于过长的key,可以通过hash(例如SHA1)处理转换。3、建议使用有意义及统一格式的key。4、最大允许key大小为512M。二、St
转载
2023-09-25 10:25:02
158阅读
redis的应用场景很多,不管是在数据存储还是分布式锁等方面,本篇文章主要对主从、哨兵、分片集群做一个简单的分析,不会讲的太深。主从模式主从模式的应用场景有点类似于数据库的主从集群,主从往往是为了读写分离、backup 等目的才使用的,所谓主从模式简单的说就是有多个节点,里面包含主节点和从节点,结构如下图:
从节点在保持连接后每隔一个时间节点会主动的和主节点通信并发送同步请求
转载
2024-06-27 12:00:59
72阅读
一、分片集群结构二、搭建分片集群分片集群需要的节点数量较多,这里我们搭建一个最小的分片集群,包含3个master节点,每个master包含一个slave节点,结构如下: 在同一台虚拟机中开启6个redis实例,模拟分片集群,信息如下:1、准备工作删除之前的7001、7002、7003这几个目录,重新创建出7001、7002、7003、8001、8002、8003目录:# 进入/tmp目录
转载
2024-03-11 11:35:59
113阅读
1.什么是缓存(cache)定义:就是计算机内存中一段数据2.内存数据特点1.读写快 2.断点立即消失3.缓存解决了什么问题?1.提高网站的吞吐量,提高网站运行效率(吞:网站的处理请求,吐就是处理响应的过程)2.核心解决问题:缓存的存在是用来减轻数据库的访问压力4.既然缓存能提高效率,那项目中所有数据加入缓存岂不是更好? 注意:使用缓存时一定是数据库中数据极少发生修改,更多用于查询这
转载
2023-12-27 21:31:39
11阅读
1、尽量使用短的key当然在精简的同时,不要完了key的“见名知意”。对于value有些也可精简,比如性别使用0、1。2、避免使用keys *keys *, 这个命令是阻塞的,即操作执行期间,其它任何命令在你的实例中都无法执行。当redis中key数据量小时到无所谓,数据量大就很糟糕了。所以我们应该避免去使用这个命令。可以去使用SCAN,来代替。3、在存到Redis之前先把你的数据压缩下
转载
2023-08-25 15:52:35
69阅读
大家好,我是咔咔 不期速成,日拱一卒之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时、空数组、null值数组时,会将其视为该字段没有值,最终还是需要使用exists或者null_value来处理空值大多数ElasticSearch的数据都来自于各类数据库,这里暂且只针对于MySQL,各个开源软件中都默认兼容
转载
2024-01-18 21:03:12
33阅读
redis的list做队列其实还是很爽的,简单,一个读一个写即可,而且基本每个系统都会使用redis,接入没有附加成本,也没有额外的学习成本。 如果需要订阅模型,写三个队列,然后三个消费者分别读自己的那个即可。 但是,也有一些问题: 无法回放,消费了即消失,没有记录。 消息体如果很大,会占用很多内存
原创
2023-03-26 05:02:57
728阅读
JWT全称JSON WEB TOKEN,基于token了不用想,八成都是和用户认证有关系。传统认证方式是通过cookie基于session的,这个优缺点就不在列举了。我在我们项目里面使用JWT的最主要原因就是因为一个是跨域的问题,一个是分布式的问题。先说大致的流程,用户在登录的时候,登录结果返回一个token值,以后的每次请求,都会在http的header中的Authorization中带上这个t