首页 > 数据库 >redis小细节

redis小细节

时间:2024-11-26 15:02:39浏览次数:7  
标签:文件 set redis k1 细节 操作 数据

  1. redis 的set指令默认按照字符串存储,所以可以不加双引号,但是如果设置的字符串中间有空格则需要加双引号
  2. k已经存在,会发生覆盖
  3. append的k不存在相当于set一个k
  4. 在方法后加nx 大多数指按照原子性进行操作
  5. Getrange 方法不支持回绕操作,即start 必须大于 end 比如 getrange k1 -1 -3 就是错误的,会返回一个空串,且正着数索引是从0开始,倒着数索引是从-1开始
  6. Serrange方法如果你设置的值的长度大于指定索引到末尾的长度,则会将指定索引到末尾这一段替换为你指定的这一段,相反,则只会替代等长的一段,如 k1设置的值为hello,如果调用了setrange k1 3 shuai 则k1的值会变为 helshuai,如果调用了setrange k1 3 s 则k1的值会变为helso
  7. 什么是redis持久化,简单来说就是把redis中的数据按一定的规则放持久化到磁盘上的文件中
  8. 什么是rdb持久化规则?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就snapshot快照。恢复的时候将快照文件读入到redis的内存中即可,此方法异常终止可能会导致数据丢失
  9. 什么是aof持久化规则?以日志的形式来记录每个写操作(增删改,不包括查,以增量的方式保存),将redis执行过的所有写指令保存下来,只允许追加文件,不允许修改文件,然后以后启动redis时就会读取该文件,将保存的指令按照记录的顺序从前到后全部执行一遍,达成构建或恢复数据的效果,命令写入时先写入aop缓冲,再通过aof持久化策略同步到aof文件,随着文件越来越大会触发重写策略(也可以手动重写),他也会进行优化减少文件大小,比如同时对一个key进行set操作,就会去掉前面的一条。

10、linux小技巧:使用env指令可以查看环境路径,就是path后面的路径,这些路径无论在哪个目录下都可以执行

11、redis事务有单独隔离性,不能保证原子性,没有回滚操作,他能检测出语法错误,从而这时放弃掉这个事务,你调用exec所有指令都不会得到执行,但是因为数据类型等发生的问题他检测不出来,比如incr一个字符串,这是调用exec会部分成功,部分失败,这是不具备原子性。redis事务没有隔离级别的概念

12、什么是悲观锁?每次取出数据,都会对这个数据上锁,这样别人来拿这个数据,就会block(阻塞),直到上个操作完成数据操作后解锁才能拿到

13、什么是乐观锁?每次去拿数据的时候都不会上锁,但在更新的时候一定会先去判断这个数据有没有被别人更新过(利用版本号机制,判断版本号是否与本身第一次拿到的版本相同),从而决定是否更新数据,如果修改完成会立马修改版本,而且在修改这个版本的时候别人是不能对数据进行操作的,redis就是利用这种check-and-set机制实现事务的,乐观锁进行更新时,需要时原子性的

标签:文件,set,redis,k1,细节,操作,数据
From: https://blog.csdn.net/yw2490614330/article/details/144038863

相关文章

  • Redis 在实际业务中的高效应用
    文章目录Redis在实际业务中的高效应用实时聊天系统的实现延迟队列解决任务延时问题全局唯一ID生成缓存预热与高并发防护实时排行榜的实现数据监控与指标统计轻量级分布式锁用户行为追踪与分析短链接与映射服务地理位置查询与计算事务与批量操作分布式数据共享中心消息......
  • java操作邮箱 - 邮箱发送验证码 -redis分布式缓存 -redisson分布式缓存
    初次发布于我的个人文档参考:java操作163邮箱本文以163邮箱为例,介绍如何用java发送邮箱。1.获取邮箱授权码进入163邮箱-设置-POP3/SMTP/IMAP-开启POP3/SMTP服务记录得到的授权码2.安装依赖//https://mvnrepository.com/artifact/jakarta.activation/jakarta.activation-ap......
  • redis 流量增加过多问题排查解决
    背景Java项目,使用Redis集群。现象Redis集群,单台流量增加过多。在redis服务器上:iftop-npP排查过程发现流量上涨是同一台机器IP尾号3。到这台机器上查看。top命令查看进程idtop-H-p1748查看具体线程信息,可以看到,有三个线程执行100多小时,而且占用较多cpu资源,线程没......
  • redis~有序集合处理ip范围的查询问题
    目前有两种方式对IP以及归属地信息进行缓存:第一种是将起始IP,结束IP以及中间所有IP转换成整型,然后以字符串方式,用转换后的IP作为key,归属地信息作为value存入Redis;第二种是采用有序集合和散列方式,首先将起始IP和结束IP添加到有序集合ip2cityid,城市ID作为成员......
  • node + Redis + svg-captcha 实现验证码
    目录前提说明Redis链接与封装svg-captcha使用步骤封装中间件验证前端接收扩展【svgAPI】svgCaptcha.create(options)svgCaptcha.createMathExpr(options)svgCaptcha.loadFont(url)svgCaptcha.optionssvgCaptcha.randomText([size|options])svgCaptcha(text,opti......
  • 彻底理解如何保证Redis和数据库数据一致性问题
    一.背景系统中缓存最常用的策略是:服务端需要同时维护DB和Cache并且是以DB的结果为准,那么就可能出现DB和Cache数据不一致的问题。二.读数据逻辑如下:当客户端发起查询数据的请求,首先回去Redis中查看没有没该数据,有就返回,没有的话就需要去数据库中查询该数据,并......
  • Redis使用案例之限流器
    Redis使用案例之限流器一、什么是限流器限流器是一种流量限制的工具,可用于防止接口在同一时间有过高的并发Redis有两种实现限流器的算法1.基于桶令牌的算法​以时间段为单位,恒定的给桶中放入令牌,每次请求从桶中获取令牌2.基于漏桶算法​控制接口流速,先创建一个桶,......
  • SpringBoot 2.x 整合 Redis
    整合1)添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--如果没有使用下面给出的工具类,那么就不需要引入--><dependency><groupId>c......
  • 第54篇 Redis简单介绍
    前言Redis,作为一种开源的、基于内存且支持持久化的键值存储系统,以其卓越的性能、丰富灵活的数据结构和高度可扩展性在全球范围内广受欢迎。Redis不仅提供了一种简单直观的方式来存储和检索数据,更因其支持数据结构如字符串、哈希、列表、集合、有序集合等多种类型,使得其在众多场景......
  • 【StringRedisTemplate】SpringBoot项目集成Redis
    目录SpringDataRedis介绍SpringDataRedis的作用SpringDataRedis提供的工具类环境准备引入依赖配置文件StringRedisTemplate的使用StringRedisTemplate的基础APIStringRedisTemplate的常用操作APIRedis的应用场景SpringDataRedis介绍SpringData是Spring......