Redis 小白指南(三)- 事务、Watch 命令、过期、消息通知、管道、优化内存空间
简介
目录
- 事务
- Watch 命令
- 过期时间
- 排序
- 消息通知
- 管道
- 优化内存空间
事务
事务是一组命令的集合,事务和命令一样都是 Redis 的最小执行单位。即一个事务中的命令,要么都执行,要么都不执行。可以思考关系型数据库中的事务特性 ACID:
(1)原子性(Atomicity):在事务结束时,其中包含的更新处理要么全部执行,要么完全不执行。
(2)一致性(Consistency):事务中包含的处理,要满足数据库提前设置的约束,也称完整性。
(3)隔离性(lsolation):保证不同事务之前互不干扰的特性。
(4)持久性(Durability):事务一旦结束,DBMS 会保证该时点的数据状态得以保存的特性,也称耐久性。
Redis 可以保证一个事务中的命令依次执行而不会被其它命令插入。如:Client A 需要执行多条指令,同时 Client B 也执行多条指令,因为网络传输或者时间等因素造成指令发送到 Redis 服务器的顺序有先后,使用事务就可以避免这种情况。
遗憾的是,Redis 不支持回滚。
Watch 命令
Watch 命令可以监控一个或多个键,一旦其中有一个键被修改(或删除),之后的事务就不会再执行。
过期时间
应用场景:限时优惠活动、缓存、学校成绩排名定期刷新。
设置过期时间意味着过一段时间就会删除 redis 中指定的数据。
命令:EXPIRE key seconds //seconds 参数表示键的过期时间,单位是秒
【备注】如果使用 WATCH 命令监测了一个拥有过期时间的键,过期后自动删除不属于 WATCH 命令监测值改变的范围之内。
排序
//TODO
消息通知
就是常说的消息队列,一边是生产者(producer),一边是消费者(consumer)。
特点:
松耦合:开发团队可以分别使用不同的开发语言,双方约定好数据的格式即可。
易于扩展:消费者可以有多个,部署在多态服务器上,轻松减轻单台服务器的压力。
管道
优化内存空间
虽然在现在这个年代,内存条的价格已经非常便宜,但对于硬盘来说,价格依然非常高昂,进行内存空间成本的控制和资源的有效利用也是一个迫切的主题。
1.精简键名和键值。不过需要自己把握精简的尺度,因为要基于可读性的基础上进行精简,过于精简不易于维护也容易造成命名冲突。
2.指定合适的编码格式。
3.选择合适的数据类型进行存储。
4.定时清理(删除)无效的缓存数据,或者设置自动过期时间。
5.配置 Redis 可用的最大空间大小,保证程序的稳定利用。
系列
《Redis 小白指南(三)- 事务、Watch 命令、过期、消息通知、管道、优化内存空间》
【博主】反骨仔
【原文】http://www.cnblogs.com/liqingwen/p/6920680.html
【参考】《Redis 入门指南》