zadd std::set 0 c
zadd std::set 0 a
zadd std::set 0 b
// since all these members have the same score,
// the result is lexicographical ordered:
// a b c
zrange std::set 0 -1
// the following command will fail, since 'c' already exists.
zadd std::set 0 c
自 Redis 2.8 版本开始,它支持一些命令来操作词法范围(lexicographical ranges),因此您可以构建与 std::set::lower_bound
或 std::set::upper_bound
类似的功能。
// something similar to lower_bound: find all members not less than b
zrangebylex std::set [b +
// something similar to upper_bound: find all members greater than b
zrangebylex std::set (b +
将集合中的每个键与一个值进行映射
由于您已经有了一个 std::set
,那么将键与值进行映射,您可以获得一个 std::map
。
set a value_a
set b value_b
set c value_c
将这两个步骤结合在一起
您可以将整个工作封装到Lua脚本中,以拥有一个内置的std :: map
。并像这样使用它:
redis-cli --eval map.lua map_name , key value
zadd a value_a
中的a
是键,value_a
是值。但实际上,a
是有序集合的名称,而value_a
是其元素。如果它像std::map
一样,语法应该是zadd std::map key value
。 - Kaidulstd :: map
:redis-cli --eval map.lua std::map,key value
。 - for_stack