1.优雅的RedisKey结构Redish中的key虽然可以自定义,但是我们在命名的时候最好遵守以下规范遵循基本的格式 [业务名称]:[数据名称]:[id]。 优点 可读性强避免key的重读方便管理比如保存用户登录信息的key可以这样命名login:user:32不要包含特殊的字符长度不要超过44字节要求key的长度不小于44是因为在key的类型都是String,在redis的底
转载 2023-08-07 23:26:44
171阅读
作为一名服务端工程师,工作中你肯定和 Redis 打过交道。Redis 为什么快,这点想必你也知道,至少为了面试也做过准备。很多人知道 Redis 快仅仅因为它是基于内存实现的,对于其它原因倒是模棱两可。那么今天就和小莱一起看看:思维导图 -基于内存实现这点在一开始就提到过了,这里再简单说说。Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数据库来说,是需要将数据读取
根据redis英文文档学习一下redis,从最基础的开始。 首先,我们看第一个红框内,key太大不好,否则从内存和key比较这俩方面,花费会巨大。所以,当有个一很大的key时,可以把key进行sha1运算,再存储。其次,第二个红框内太短的key也不好,把user:1000:followers缩写为u1000flw,这样去节省key的空间是没有意义的。在key值得可读性和空间占用方面,自己
转载 2023-06-14 23:02:54
98阅读
为了使reids配置更优,在使用redis的时候需要注意一些规范,首先要注意,redis和任何cache都不适合写操作比较多的场景,只时候读多写少的场景。定义key的时候,加上前缀,防止不同业务的key冲突trade:order:cloth:Tshirt:10011不要再key里面加特殊字符,尽量的让key简洁,不要让key占太多空间user:{uid}:friends:messages:{mid
一、关于 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阅读
1、尽量使用短的key当然在精简的同时,不要完了key的“见名知意”。对于value有些也可精简,比如性别使用0、1。2、避免使用keys *keys *, 这个命令是阻塞的,即操作执行期间,其它任何命令在你的实例中都无法执行。当rediskey数据量小时到无所谓,数据量大就很糟糕了。所以我们应该避免去使用这个命令。可以去使用SCAN,来代替。3、在存到Redis之前先把你的数据压缩下
在公司项目中,redis属于高频使用,在使用中,我们遇到了各种各样的redis问题,于是针对自身情况梳理了一个redis使用规范。一、键名设计1、key名设计1. 禁止包含特殊字符(比如空格、换行、单双引号以及其他转义字符)2. 建议以业务名为前缀,以冒号分割来构造一定规则的key名(比如业务名:表名:id)比如:teach:leeson_id:213. 控制key的长度key太长量一大起来就会非
Redis 的使用,几乎都是作为缓存中间件的。缓存用得好,当然能提高软件的运行速度,但是缓存用的不好,对于提高速度上也无法带来增益。键值对使用好的 key 命名,能提供更好的可读性和可维护性,便于定位问题和寻找数据。value 要避免出现 bigkey、选择高效的序列化和压缩、使用对象共享池、选择高效恰当的数据类型。类比于数据库,Rediskey 就相当于数据库的 Schema。我们需要在区
转载 2023-09-10 21:58:22
61阅读
### 为什么建议redis中使用分库? 在Redis中,虽然可以使用`SELECT`命令来切换不同的数据库,但是并不建议Redis中使用分库。下面我将从几个方面来解释为什么建议分库。 #### 1. 内存消耗 在Redis中,每个数据库都会占用一部分内存空间,当我们在Redis中创建多个数据库时,每个数据库都会占用一定的内存空间。这样就会导致整体的内存消耗增加,可能会影响到Redi
原创 2024-03-08 06:28:02
241阅读
# 理解 RedisKey 和 Value 长度限制的原因及实现流程 Redis 是一个开源的高性能键值存储系统,广泛用于缓存、排行榜、会话管理等场景。许多新入行的开发者可能会问,为什么在使用 Redis 时,key 和 value 的长度有一定的限制?本文将逐步引导你理解这一点,并提供实现过程。 ## 一、流程概述 为帮助理解 Rediskey 和 value 长度限制的原因,
原创 8月前
224阅读
昨天评审代码时,大佬同事看到我代码里使用了mysql的on duplicate key update语法实现了对数据的save or update,说这个语法有严重的性能和其他隐患问题,让我必须改成先查询一次分出新增集合和修改集合,再分别进行批量新增和批量修改的方式进行,并对批量修改时使用case when的方式实现。对于批量修改,在mybatis中也就是类似这种的xml:<update i
原创 2022-03-30 10:30:46
5312阅读
基础牢,地动山摇
转载 2023-11-27 14:14:52
120阅读
程序员的成长之路互联网/程序员/技术/资料共享
转载 2022-06-19 00:40:31
248阅读
NoSQL为什么要使用NoSQL单个数据库架构下,数据存储的瓶颈是什么?数据量过大,一个机器放不下数据索引过大,一个机器的内存放不下读写混合情况下的访问量一个实例无法承受Web数据库架构的发展优化数据库的结构和索引,使用缓存技术缓解数据库的压力(Memcached+MySQL+垂直拆分)MySQL主从复制和读写分离分库分表+水平拆分+MySQL集群MySQL的扩展性瓶颈:扩展性差、大数据下IO压力
文章目录面试题一、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 的优势
1.起因 让我关注到这一点的起因是一道题,是这么描述的: Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 大意就是给我一些点的X,Y坐标,找到过这些
转载 2022-03-15 17:16:23
48阅读
1.起因 让我关注到这一点的起因是一道题,是这么描述的: Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 大意就是给我一些点的X,Y坐标,找到过这些点最多的直线,输出这条线上的点数量 于是我就敲出了以下的代码: import java.util
原创 2022-03-04 10:04:14
115阅读
大家好,我是咔咔 不期速成,日拱一卒之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时、空数组、null值数组时,会将其视为该字段没有值,最终还是需要使用exists或者null_value来处理空值大多数ElasticSearch的数据都来自于各类数据库,这里暂且只针对于MySQL,各个开源软件中都默认兼容
redis的list做队列其实还是很爽的,简单,一个读一个写即可,而且基本每个系统都会使用redis,接入没有附加成本,也没有额外的学习成本。 如果需要订阅模型,写三个队列,然后三个消费者分别读自己的那个即可。 但是,也有一些问题: 无法回放,消费了即消失,没有记录。 消息体如果很大,会占用很多内存
原创 2023-03-26 05:02:57
728阅读
JWT全称JSON WEB TOKEN,基于token了不用想,八成都是和用户认证有关系。传统认证方式是通过cookie基于session的,这个优缺点就不在列举了。我在我们项目里面使用JWT的最主要原因就是因为一个是跨域的问题,一个是分布式的问题。先说大致的流程,用户在登录的时候,登录结果返回一个token值,以后的每次请求,都会在http的header中的Authorization中带上这个t
  • 1
  • 2
  • 3
  • 4
  • 5