123456789101112131415161718192021222324252627 |
- -- KEYS[1]: full path of entry
- local full_path = KEYS[1]
- -- KEYS[2]: dir of the entry
- local dir_list_key = KEYS[2]
- -- ARGV[1]: content of the entry
- local entry = ARGV[1]
- -- ARGV[2]: TTL of the entry
- local ttlSec = tonumber(ARGV[2])
- -- ARGV[3]: isSuperLargeDirectory
- local isSuperLargeDirectory = ARGV[3] == "1"
- -- ARGV[4]: zscore of the entry in zset
- local zscore = tonumber(ARGV[4])
- -- ARGV[5]: name of the entry
- local name = ARGV[5]
- if ttlSec > 0 then
- redis.call("SET", full_path, entry, "EX", ttlSec)
- else
- redis.call("SET", full_path, entry)
- end
- if not isSuperLargeDirectory and name ~= "" then
- redis.call("ZADD", dir_list_key, "NX", zscore, name)
- end
- return 0
|