redis / docker-library-redis

Docker Official Image packaging for Redis
http://redis.io
BSD 3-Clause "New" or "Revised" License
1.12k stars 561 forks source link

redis:7.0.2-alpine 有问题,会导致刚写入的key消失 #323

Closed d86e closed 1 year ago

d86e commented 1 year ago

redis:7.0.2-alpine 有问题,会导致刚写入的key消失, 就算设置了足够长的时间,也会在40ms到6s之间消失, 暂时找不到任何原因,不是内存不足,不是超时,服务运行正常并未重启。 切换到redis:latest后一切正常。

tao12345666333 commented 1 year ago

I can't reproduce your problem, please provide detailed reproduction steps, or check your environment.

➜  ~ docker run --rm -d redis:7.0.2-alpine 
Unable to find image 'redis:7.0.2-alpine' locally
7.0.2-alpine: Pulling from library/redis
2408cc74d12b: Pull complete 
e90389148883: Pull complete 
c6c08b6ea4d5: Pull complete 
a1a4b4673a23: Pull complete 
e14aa32bdd63: Pull complete 
abe61b7e68d2: Pull complete 
Digest: sha256:5916c280afae05baf0dc9a0cc82fa8e51477bdbfc72f60a5c14fd2b7735bcf07
Status: Downloaded newer image for redis:7.0.2-alpine
90a0d0b023cdd473db9f8c5cffd15142cbf2b9eedcd5cf0dbbb30fa2b42b8671
➜  ~ docker exec -it $(docker ps -ql) redis-cli ping
PONG
➜  ~ date
2022年 07月 17日 星期日 14:17:15 CST
➜  ~ docker exec -it $(docker ps -ql) redis-cli set foo bar
OK
➜  ~ docker exec -it $(docker ps -ql) redis-cli get foo    
"bar"
➜  ~ sleep 200
➜  ~ docker exec -it $(docker ps -ql) redis-cli get foo
"bar"

In addition, please use English to communicate in the issue of this project.

d86e commented 1 year ago

一、新建docker-compose.yml文件,内容如下: version: '3.1'

services: redis: container_name: "redis" image: redis:latest restart: always ports:

二、执行docker-compose up -d命令启动容器

三、进入hyperf容器并安装redis以便使用redis-cli $ docker exec -it a8fc8c2799d7 sh / # date "+%Y-%m-%d %H:%M:%S" 2022-07-17 10:18:51 / # apk add redis fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz (1/1) Installing redis (6.2.7-r0) Executing redis-6.2.7-r0.pre-install Executing redis-6.2.7-r0.post-install Executing busybox-1.33.1-r7.trigger OK: 65 MiB in 102 packages

四、在hyperf容器内使用redis-cli -h redis连接 / # redis-cli -h redis redis:6379> redis:6379> set aaa 12342 ex 9999999999 OK redis:6379> ttl aaa (integer) 9999999995 redis:6379> ttl aaa (integer) 9999999994 redis:6379> ttl aaa (integer) 9999999992 redis:6379> ttl aaa (integer) -2 redis:6379> ttl aaa (integer) -2 redis:6379> ttl aaa (integer) -2 redis:6379> exit

不断的使用ttl命令查看key的过期时间,大概几秒后key已经不存在并且ttl命令返回-2,以上是全部过程。

wglambert commented 1 year ago

Your issue is about using Redis installed from apk repos in the hyperf/hyperf:7.4-alpine-v3.14-swoole container which isn't related to our redis image

You could also try asking over at the Docker Community Forums, Docker Community Slack, or Stack Overflow. Since these repos aren't really a user-help forum