批量删除redis keys
redis-cli keys “keyname*” | xargs redis-cli del
如果redis服务设置了密码,使用下面命令删除:
| redis-cli -a password keys “keyname*” | xargs -a password redis-cli del |
redis.Hash如何设置过期时间,时间不过期
https://blog.csdn.net/weixin_42997826/article/details/83659019
https://www.cnblogs.com/widgetbox/p/12610670.html
Redis HINCRBY命令用于增加存储在字段中存储由增量键哈希的数量。如果键不存在,新的key被哈希创建。如果字段不存在,值被设置为0之前进行操作。
回复整数,字段的增值操作后的值。
https://www.cnblogs.com/qiange/p/5110207.html
Redis EVAL执行Lua脚本之批量删除数据
https://blog.csdn.net/lupengfei1009/article/details/86619160
https://blog.csdn.net/weixin_43881017/article/details/112581089
https://blog.csdn.net/weixin_39866741/article/details/111296565
https://www.cnblogs.com/liqiliang1437/p/14058682.html
https://www.cnblogs.com/cloudshadow/p/redis_redis_cli.html
选择 db库
redis 127.0.0.1:6379> select 8
edis事务三阶段:
开启:以MULTI开始一个事务
入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面
执行:由EXEC命令触发事务
redis事务三大特性:
单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
没有隔离级别的概念:队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在”事务内的查询要看到事务里的更新,在事务外查询不能看到”这个让人万分头痛的问题
不保证原子性:redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚
https://blog.csdn.net/mingzhehaolove/article/details/78412631
Redis 定期删除ZSet中无效的Member
https://blog.csdn.net/wuleidaren/article/details/105572266
1、概念
(1)基本概念
redis的有序集合与集合一样也是String类型元素的集合,不允许有重复的元素
每一个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行重大到小的排序
有序集合中的成员是唯一的,但是分数可以重复
集合是通过哈希表实现的,集合中的最大元素是2的32次方减1。Zset是有序且不重复的
(2)应用
销量排行、积分排行、成绩排行,集合的value作为学号,成绩作为分数,插入集合的时候就已经排好顺序了
https://www.cnblogs.com/zhai1997/p/13286958.html
https://segmentfault.com/a/1190000022141461
https://haicoder.net/redis/redis-scan.html
transaction := l.redisClient.TxPipeline()
defer transaction.Close()
response := transaction.Keys(ctx, keyPrefix)
for _, key := range response.Val() {
fmt.Println(key)
transaction.Del(ctx, key)
}
r, err := transaction.Exec(ctx)
if err != nil {
return transaction.Discard()
}
response := l.redisClient.Eval(ctx, `
local allKeys = redis.call(‘keys’,KEYS[1])
if(allKeys ~= nil) then
for i=1,#allKeys,1 do
redis.call(‘del’,allKeys[i])
end
return #allKeys
else
return 0
end`, []string{keyPrefix})
return response.Err()
pipeline 只能执行一个个命令,不能获取返回值执行下一个,如果需要只能借助脚本