20

假设我有一个包含 1,000,000 个键的数据库。有没有办法知道该数据库中的最后 10 个键?

4

4 回答 4

7

您需要使用以下命令将其维护为另一个列表。

Add new key to the front of the list  
LPUSH last10keys key

Retain only the last 10
LTRIM last10keys 0 9

Get the last keys - will return 10 or less
LRANGE mylist 0 9 
于 2013-05-17T08:29:51.910 回答
2

作为一种解决方法,如果我不想更改缓存中的任何内容,我会跟踪 AOF 文件以查看那里的最新更改。

tail -f /var/lib/redis/appendonly.aof

从那里,您可以看到使用的键、值和命令。

于 2014-07-08T03:22:46.733 回答
0

您可以使用管道从 Redis 数据库中获取最后插入的密钥或特定密钥

这是我的代码示例:

r = redis.StrictRedis(host='localhost', port= 6379, db =0)
# Day1 hash for 24 hours 
# Key , Field , Value
r.hset("31/8/21", "12am", "/home/user/video1.mp4")
r.hset("31/8/21", "1am", "/home/user/video2.mp4")
r.hset("31/8/21", "2am", "/home/user/video3.mp4")
r.hset("31/8/21", "3am", "/home/user/video4.mp4")
r.hset("31/8/21", "4am", "/home/user/video5.mp4")
.
.
#Created sorted set for all the date hashes into single "date" key
r.sadd("date", "25/8/21")
r.sadd("date", "26/8/21")
r.sadd("date", "27/8/21")
r.sadd("date", "28/8/21")
r.sadd("date", "29/8/21")
r.sadd("date", "30/8/21")
r.sadd("date", "31/8/21")
r.save

@app.get("/lastweek")
def sortweek():
        lastweeklist = r.sort("date", 27, -1, alpha=True) #sorted set key > date
        pipe = r.pipeline()
        for keys in lastweeklist:
                pipe.hgetall(keys) #hvals
        week1 = []
        for week in pipe.execute():
                week1.append(week)
        return week1
于 2021-08-31T11:09:11.440 回答
0

某些命令 [LIMIT offset count]可以填充并获得有限数量的项目。

就像zrevrangebyscore key +inf 0 LIMIT 0 20它给你一个排序集的前 20 个项目。

于 2016-10-21T20:29:11.913 回答