redis的mset可以像set一样设置过期时间吗
看了下api,貌似不支持,因为我有一个列表(比如说20个),需要缓存到redis,如果一个一个的去redis.set(‘key’,‘value’,‘NX’,‘EX’,60,cb);效率有点低,就想用redis.mset(‘key’,‘value’,‘key’,‘value’,‘key’,‘value’,…,cb)一次性缓存过去,但是不能设置过期时间了
2 回复
实在不行,弄个计划任务,定期清理一下
如果担心发出多个命令的效率,那大可不必。nodejs的redis客户端默认是使用pipeline通讯策略的,一个命令 ≠ 一次tcp连接,在一个连接上可以发出n个命令。单个命令和多个命令的区别只在于传递数据量的多少,除此之外没有额外的消耗。可以通过网络抓包工具,看看redis客户端与服务器端的通讯数据的响应情况。