docker - Redis 在 MULTI 中错误 EXPIRE
问题描述
使用 Redis,此脚本失败:
multi
sadd 1 1
expire 1 100
exec
smembers 1
...
(empty list or set)
它说集合是空的。我将过期时间设置为 100 秒,这对于在几分之一秒内运行的脚本来说已经绰绰有余了。如果我将过期时间设置为 200 秒,它会起作用:
multi
sadd 1 1
expire 1 200
exec
smembers 1
...
1) "1"
另一点:如果我删除 MULTI 它也可以:
sadd 1 1
expire 1 100
smembers 1
...
1) "1"
我在 Raspberry PI 上执行它。是时钟问题吗?我使用 Redis docker 6.0 版。
编辑:这看起来很可疑:
$ date
Mon Sep 6 18:41:13 CEST 2021
$ docker exec -it redis date
Thu May 21 19:18:40 CEST 2071
解决方案
它似乎与这个问题有关: 在 RasPi 上使用 redis:6-alpine 损坏日期
这是由于libseccomp
我们的 Raspbian 中的旧版本...与新版本的 Redis 冲突。
使用稍旧版本的 redis 可以工作,例如 redis:6.0.6-alpine3.12。
推荐阅读
- docusignapi - 收件人电子邮件格式
- django - 运行 psql 时未显示克隆项目的 Postgres 数据库
- huggingface-transformers - 从 tokenizer.encode_plus 返回的字典中缺少 attention_mask
- r - R检查具有相同模式的多个变量是否具有相同的值
- python - 用另一个多维数组索引一个多维 numpy 数组
- javascript - D3.js 的折线图不会显示由于
属性 d:预期数字,“M0,NaNL38.695652173…” - javascript - 在 javascript 中转换字母 - 谁能看到我的错误?
- javascript - React TextField Select 中的第一个项目没有被选中
- python - Python中的引用计数在什么条件下递增/递减?
- c++ - 将新的原始数据添加到文件 С++ Visual Studio 后,数组变得垃圾