事务就是保证命令组合原子性的一种机制,
一组命令,要么全部执行,要么全部不执行.
Reids的事务没有回滚功能,一旦开始执行,就必定都会执行,判断不能执行事务的依据是没有语法错误,并且关注的键值没有发生变化
2. Redis 扩展功能-redis-cli
9. Redis API的理解和使用-总结
- Redis提供了
string
,hash
,list
,set
,zset
5中基本数据结构,没有数据结构都有多种内部编码实现 - 高性能原因:纯内存存储,IO多路复用技术,单线程架构
- 因为是单线程架构,所以必须要保证所有命令都能快速执行完成,如果命令长时阻塞线程,可能会导致业务运行问题
- 批量操作,Redis提供了批量操作的命令,可以通过有效减少网络通信次数来提高效率
- 命令的时间复杂度要注意,使用长时命令要注意影响
persist
/set
命令都会删除键的过期时间- 键前移基本使用的命令是
migrate
,有原子性,是Redis服务器端之间的通信 scan
命令可以替代keys
等命令,采用循环遍历的方式来防止大数据造成的阻塞
8. Redis API的理解和使用-键管理
单个键
- 键重命名
rename $key $newkey
,会覆盖已有键值
renamenx $key $newkey
,不会覆盖已有键值
重命名时会使用del
删除旧的键,如果值比较大,可能会阻塞Redis - 随机返回一个键
randomkey
,从已有的key中随机一个key返回 - 键过期
expire $key $seconds
,键在$seconds
秒后过期expireat $key $timestamp
,键在秒级时间戳后过期ttl $key
,查看过期时间(秒),-1
无限时间,-2
键不存在pexpire $key $milliseconds
,键在$seconds
毫秒后过期pexpireat $key $milliseconds-timestamp
,键在毫秒级时间戳后过期pttl $key
,查看过期时间(毫秒)persist $key
,清除键的过期时间
set
命令时,很容易会覆盖掉过期时间