定制网站开发公司电话,软件技术专业简介,php做网站和小程序很好,做异地送花网站文章目录 前言一、怎么理解 Redis 事务#xff1f;二、Redis 事务相关的命令有哪几个#xff1f;三、Redis key 的过期时间和永久有效分别怎么设置#xff1f;四、Redis 如何做内存优化#xff1f;五、Redis 回收进程如何工作的#xff1f;六、 加锁机制总结 前言
怎么理… 文章目录 前言一、怎么理解 Redis 事务二、Redis 事务相关的命令有哪几个三、Redis key 的过期时间和永久有效分别怎么设置四、Redis 如何做内存优化五、Redis 回收进程如何工作的六、 加锁机制总结 前言
怎么理解 Redis 事务Redis 事务相关的命令有哪几个Redis key 的过期时间和永久有效分别怎么设置Redis 如何做内存优化Redis 回收进程如何工作的加锁机制 一、怎么理解 Redis 事务
事务是一个单独的隔离操作事务中的所有命令都会序列化、按顺序地执行事务在执行的过程中不会 被其他客户端发送来的命令请求所打断。 事务是一个原子操作事务中的命令要么全部被执行要么全部都不执行。 二、Redis 事务相关的命令有哪几个
MULTI、EXEC、DISCARD、WATCH 三、Redis key 的过期时间和永久有效分别怎么设置
EXPIRE 和 PERSIST 命令 四、Redis 如何做内存优化
尽可能使用散列表hashes散列表是说散列表里面存储的数少使用的内存非常小所以你应该尽可能的将你的数据模型抽象到一个散列表里面。 比如你的 web 系统中有一个用户对象不要为这个用户的名称姓氏邮箱密码设置单独的 key,而是应该把这个用户的所有信息存储到一张散列表里面。 五、Redis 回收进程如何工作的
一个客户端运行了新的命令添加了新的数据。 Redi 检查内存使用情况如果大于 maxmemory 的限制, 则根据设定好的策略进行回收。 一个新的命令被执行等等。 所以我们不断地穿越内存限制的边界通过不断达到边界然后不断地回收回到边界以下。 如果一个命令的结果导致大量内存被使用例如很大的集合的交集保存到一个新的键不用多久内存限制就会被这个内存使用量超越。 六、 加锁机制
咱们来看上面那张图现在某个客户端要加锁。如果该客户端面对的是一个 redis cluster 集群他首先会根据 hash 节点选择一台机器。 这里注意仅仅只是选择一台机器这点很关键紧接着就会发送一段 lua 脚本到 redis 上那段 lua 脚本如下所示 为啥要用 lua 脚本呢因为一大坨复杂的业务逻辑可以通过封装在 lua 脚本中发送给 redis保证这段复杂业务逻辑执行的 原子性。 那么这段 lua 脚本是什么意思呢这里 KEYS[1]代表的是你加锁的那个 key比如说RLoc k lock redisson.getLock(“myLock”);这里你自己设置了加锁的那个锁 key 就是“myLock”。 ARGV[1]代表的就是锁 key 的默认生存时间默认 30 秒。ARGV[2]代表的是加锁的客户端的 ID类似于下面这样8743c9c0-0795-4907-87fd-6c719a6b4586:1 给大家解释一下第一段 if 判断语句就是用“exists myLock”命令判断一下如果你要加锁的那个锁 key 不存在的话你就进行加锁。如何加锁呢很简单 用下面的命令hset myLock8743c9c0-0795-4907-87fd-6c719a6b4586:1 1通过这个命令设置一个 hash 数据结构这行命令执行后会出现一个类似下面的数据结构 上述就代表“8743c9c0-0795-4907-87fd-6c719a6b4586:1”这个客户端对“myLock”这个锁 key 完成了加锁。接着会执行“pexpire myLock 30000”命令设置 myLock 这个锁 key 的 生存时间 是 30 秒。好了到此为止ok加锁完成了。 总结
怎么理解 Redis 事务Redis 事务相关的命令有哪几个Redis key 的过期时间和永久有效分别怎么设置Redis 如何做内存优化Redis 回收进程如何工作的加锁机制