一:Redis的伪事务Redis会将一个事务中的所有命令序列化,然后按照顺序执行执行中不会被其他命令插入,不许出现加塞行为。从严格意义上来说,redis 是没有事务的。因为事务必须具备四个特点:原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。然后 redis 是做不到这四点,只是具备其中一些特征,redis的事务是个伪事
转载 2024-10-08 11:11:37
36阅读
前言事务是关系型数据库的特征之一,那么作为 Nosql 的代表 Redis 中有事务吗?如果有,那么 Redis 当中的事务又是否具备关系型数据库的 ACID 四大特性呢?Redis 有事务吗这个答案可能会令很多人感到意外,Redis 当中是存在“事务”的。这里我把 Redis 的事务带了引号,原因在后面分析。Redis 当中的单个命令都是原子操作,但是如果我们需要把多个命令组合操作又需要保证数据
转载 2023-08-17 09:28:52
116阅读
前言redis作为当下比较热门的nosql 缓存中间件,使用起来非常简单,但是当我们需要让多个命令保持原子性时,应该如何使用呢,本文就来介绍下案例1、redis提供了事务操作,multi和exec指令,我们来简单的模拟一下首先启动redis服务,连接到客户端 执行完上述过程最后get k1的值是2,上述可以理解为multi开启了事务,只是多次set,此时的返回结果为QUEUED,代表进入了执行队列
转载 2023-08-15 17:49:05
90阅读
原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作。但是最近在使用redis的scan的命令式却踩了一个坑,顿时发觉自己原来对redis的游标理解的很有限。所以记录下这个踩坑的过程,背景如下:公司因为redis服务器内存吃紧,需要删除一些无用的没有设置过期时间的key。大概有500多w的key。虽然key的数目听起来挺吓人。但是自己玩redis也有年头了,这种事还不是
转载 2024-09-18 11:18:30
48阅读
# Redis Lua 脚本与机制 在开发过程中,有时我们需要保证操作的原子性,即要么全部成功,要么全部失败。Redis Lua 脚本在这方面提供了一定的支持,但通常并不会内置机制。本文将教你如何实现类似的效果。 ## 流程概述 下面的表格展示了实现 Redis Lua 脚本类似的整体流程。 | 步骤 | 说明 | |------
原创 2024-10-16 04:11:22
286阅读
文章目录命令说明执行流程结果对比优势劣势注意 命令说明普通命令:只多个原生命令的执行。管道命令:在Redis提供的管道流中多个原生命令一次性发送,并在所有命令执行完一次性获取执行结果(使用限制:多个命令之间不存在返回结果上的依赖)。事务命令:开启事务后执行命令(使用限制:多个命令之间不存在返回结果上的依赖)。lua脚本命令:以lua脚本粘合多个原生命令,作为一个整体发送到服务器端执行。执行流程以
转载 2024-05-08 23:58:37
61阅读
有读者问我为什么这么久都没有出Redis Lua中学教程,表示村头厕所已经好久没有纸了。其实我早就要写这篇中学教程了,奈何最近太忙了,就一拖再拖,直到今天我终于又开始动笔了。忘记Lua相关概念的同学中学教程主要分为两部分:Redis Lua的相关命令详解和Lua的语法介绍。前面我们简单介绍了EVAL和EVALSHA命令。但是只有那点只是是没办法从中学毕业的,因此我们需要进行更深入的学习。EVAL最
转载 2024-06-20 12:52:37
11阅读
前言事务是关系型数据库的特征之一,那么作为 Nosql 的代表 Redis 中有事务吗?如果有,那么 Redis 当中的事务又是否具备关系型数据库的 ACID 四大特性呢?Redis 有事务吗这个答案可能会令很多人感到意外,Redis 当中是存在“事务”的。这里我把 Redis 的事务带了引号,原因在后面分析。Redis 当中的单个命令都是原子操作,但是如果我们需要把多个命令组合操作又需要保证数据
# 项目方案:RedisLua脚本的方案 ## 项目简介 在使用Redis进行数据操作时,我们经常会用到Lua脚本进行复杂的操作。但是当Lua脚本执行失败时,我们需要一种机制来保证数据的一致性。本项目提出了一个基于Redis事务和Lua脚本的方案,以保证数据的完整性和一致性。 ## 技术架构 本项目使用Redis作为数据存储,Lua脚本作为数据操作的逻辑处理器。在Lua脚本中,我
原创 2024-02-24 05:42:15
992阅读
事务的实现相对比较复杂,它是基于多种机制和方案共同保障而做到了。 比如,通过机制实现事务的原子性;借助锁机制和MVCC(多版本并发控制)保证事务的隔离性和并发性;基于WAL、Checkpoint、Crash Recovery、重做或等机制实现事务的持久性;通过约束一致性(唯一索引、外键、check、NOT NULL等完整性约束)和数据一致性(由原子性、隔离性、持久性等机制保证,尤其是持久性
转载 2024-09-24 14:20:45
25阅读
1 原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作。但是最近在使用redis的scan的命令式却踩了一个坑,顿时发觉自己原来对redis的游标理解的很有限。当时想了下,具体方案是通过lua脚本来过滤出500w的key。然后进行删除动作。lua脚本在redis server上执行,执行速度快,执行一批只需要和redis server建立一次连接。筛选出来key,然后一
目录1.基础事务2.Redis事务3.使用watch命令监控事务4.流水线(pipelined)5.发布订阅6.超时命令7.使用Lua语言1.基础事务Redis事务是使用MULTI-EXEC的命令组合,提供两个重要的保证:事务是一个被隔离的操作,事务中的方法都会被Redis进行序列化并按顺序执行,事务在执行的过程中不会被其他客户端发生的命令所打断。事务是一个原子性的操作,它要么全部执行,要么就
转载 2024-04-10 11:23:25
19阅读
linux 服务一键更新发布shell脚本#!/bin/bash set -e DATE=$(date +%Y%m%d%H%M) # 基础路径 BASE_PATH=/home/mico-service-gateway # 编译后 jar包 的地址 SOURCE_PATH=$BASE_PATH/build # 服务名称。同时约定部署服务的 jar 包名字也为它。 SERVER_NAME=mic
转载 2024-04-07 13:40:00
55阅读
Redis SAVE命令用来创建备份当前Redis数据库。 语法Redis SAVE命令的基本语法如下所示:127.0.0.1:6379> SAVE 例子下面给出的例子创建备份当前的数据库。127.0.0.1:6379> SAVE OK 这个命令将创建dump.rdb文件在Redis目录。 还原Redis数据要恢复Redis数据只是移动Redis备份文件(dump.rdb)到Red
转载 2023-05-29 10:50:35
151阅读
# Redis中的事务机制 Redis是一种高性能的键值存储系统,在许多场景中被广泛应用。尽管Redis的主要设计目的是高效和简单地存储数据,但在与其他数据库系统配合使用时,它的事务管理功能常常引起开发者的关注。本文将深入探讨Redis的事务机制以及如何处理事务。我们将通过示例代码为您提供更清晰的理解。 ## 什么是事务? 在数据库管理中,事务是一个逻辑上的操作单元,它包含一组必须全
原创 8月前
108阅读
不能Redis事务还能用吗前言Redis 有事务吗Redis 事务实现原理Redis 事务 ACID 特性A - 原子性Redis 中的事务为什么不会C - 一致性I - 隔离性D - 持久性watch 命令watch 命令的作用watch 原理分析总结 前言事务是关系型数据库的特征之一,那么作为 Nosql 的代表 Redis 中有事务吗?如果有,那么 Redis 当中的事务又是否具备
目录1.Redis事务基本命令2.开启与执行事务3.事务4.多线程中的事务1.Redis事务基本命令虽然redis是一种基于内存的nosql,但是其也是支持事务的,只不过没有传统的关系型数据库(如MySql)那么强大,下面给出redis的事务命令: 表1-1     Redis事务命令 命令说明备注multi开启事务命令,之后的命令就进入队列,而不会马上被
Redis其他知识点这也是Redis相关一些面试可能问到的知识点,但是又不知道归于哪一类,就挤到这篇文章1. Redis缓存回收策略Redis官方文档 Redis毕竟是基于内存的,内存空间相对于磁盘来说比较小,想比较好的应用就只有两种方法:开源与节流 开源(扩展空间):集群方式,一台机器空间不够,多几台机器就好了 节流:有限的空间尽可能存最有效的信息,将暂时不用的数据清除掉,用过期可能更符合语境(
转载 2023-06-25 09:24:37
185阅读
一、Redis 简介Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库,类似于 Java 中的 Map<key, value>。Redis 与其他 key - value 缓存产品有以下特点:(1)Redis 数据库中所有数据都存储在内存中,由于内存的读写速度远快于硬盘,因此 Redis 在性能上对比其他基于硬盘存储的数据库有非常明显的优势。 (2
转载 2023-08-25 23:35:58
107阅读
redis 的事务处理不像传统的关系型数据库那样支持redis事务相关命令“multi”:进入事务上下文“exec”:顺序执行事务等待队列“discard”:取消当前事务redis在进入事务上下文后,并不会马上就执行命令,而是把命令放入一个队列,在键入exec后,才会根据队列的顺序,顺序执行队列里的命令我们可以通过一些例子来看看redis的事务处理在命令行里输入"multi"后,这时就已经进入
转载 2023-06-14 23:34:06
268阅读
  • 1
  • 2
  • 3
  • 4
  • 5