redis安装
https://www.runoob.com/redis/redis-install.html
redis基本数据结构及对应的常用命令
https://www.cnblogs.com/yft-javaNotes/p/10083291.html#autoid-2-4-0
hset与hsetNx的区别
命令参数:
HSET key field value
HSETNX key field value
作用区别:
HSET 将哈希表 key 中的域 field 的值设为 value 。如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。如果域 field 已经存在于哈希表中,旧值将被覆盖。
HSETNX 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。若域 field 已经存在,该操作无效。
如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。
返回值区别:
HSET:如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1 。如果哈希表中域 field 已经存在且旧值已被新值覆盖,返回 0 。
HSETNX:设置成功,返回 1 。如果给定域已经存在且没有操作被执行,返回 0 。
---------------------
参考:https://blog.csdn.net/qq756684177/article/details/81518766
expire设置key过期时间
注意:Redis是一个非常棒的key-value的内存性缓存,处理速度非常的快。还可以很方便的对key设置过期时间,让我们很轻松的就能让不需要保存很久的缓存自己就移除掉。但是redis并没有对哈希表Hash里面的Field有设置过期时间的配置,所以需要自己写一套可以设置过期时间field缓存的工具:https://www.againfly.com/flytag_424.html
运用expire的demo:https://blog.csdn.net/lipr86/article/details/83141753
Multi与Exec
Redis Multi 命令用于标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
- Multi返回值:总是ok;
- Exec返回值:事务块内所有命令的返回值,按命令执行的先后顺序排列。 当操作被打断时,返回空值 nil