Ruby 在redis中使用哈希作为密钥的可能性
在Python中:Ruby 在redis中使用哈希作为密钥的可能性,ruby,redis,Ruby,Redis,在Python中: import redis db = redis.StrictRedis() db.set({'test1': 'a', 'test2' : 'b'},1) print db.get({'test2': 'b', 'test1' : 'a'}) result : 1 我怎么能用Ruby做呢?(我不想使用JSON,因为在JSON中,散列中元素的顺序必须是强的。)这是可能的,但不能像Python中那样直接使用。这是因为密钥将转换为字符串,但不会有任何特定的规范化。因此,如果交换关
import redis
db = redis.StrictRedis()
db.set({'test1': 'a', 'test2' : 'b'},1)
print db.get({'test2': 'b', 'test1' : 'a'})
result : 1
我怎么能用Ruby做呢?(我不想使用JSON,因为在JSON中,散列中元素的顺序必须是强的。)这是可能的,但不能像Python中那样直接使用。这是因为密钥将转换为字符串,但不会有任何特定的规范化。因此,如果交换关键点的位置,字符串表示形式将更改
2.1.5 :001 > r = Redis.current
=> #<Redis client v3.2.1 for redis://127.0.0.1:6379/0>
2.1.5 :002 > r.set({test1: 'a', test2: 'b'}, 1)
=> "OK"
2.1.5 :003 > r.keys
=> ["{:test1=>\"a\", :test2=>\"b\"}"]
2.1.5 :004 > r.get({test2: 'b', test1: 'a'})
=> nil
那会转化的
{test2: 'b', test1: 'a'}
{test1: 'a', test2: 'b'}
{"test1" => 'a', "test2" => 'b'}
...
进入
这可以有效地用作密钥
{test2: 'b', test1: 'a'}
{test1: 'a', test2: 'b'}
{"test1" => 'a', "test2" => 'b'}
...
"test1:a/test2:b"