每次服务器重新启动时,都会将所有数据库数据从MySQL存储到Redis。如果密钥存在,它将忽略。每次更新或创建都会GET
键,并且值始终以字符串排列。我将遍历数组以更新元素,并再次SET
返回相同的键。
几个小时后,在Docker容器中运行Redis,卷已附加到docker dir,但为空。
我遇到了一个问题, Redis将RAM的使用量保留为200MB,不久后减少到60MB,并遇到数据丢失。
Docker-Compose
redis_prod:
image: 'redis'
container_name: 'redis-cache-prod'
labels:
- traefik.enable=false
networks:
- traefik_proxy
volumes:
- redis-data:/data
expose:
- 6379
volumes:
redis-data:
我如何更新Redis
var redisR = JSON.parse(await redis.get('house'));
var updatedHouses = redisR.filter(e => e.burn === true);
redis.set('house', JSON.stringify(updatedHouses));
Docker Stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
657ddd3d44ef redis-cache-prod 0.18% 188.6MiB / 1.953GiB 9.43% 148MB / 2.94GB 991kB / 4.1kB 4