1

redis-cli を使用して、redis の仕組みを理解しています。このツールを使用すると、次のことができることを理解しています。

127.0.0.1:6379> set post:1:title "Redis is cool!"
OK
127.0.0.1:6379> set post:1:author "haye321"
OK
127.0.0.1:6379> get post:1:title
"Redis is cool!"

私が理解できないように見えるのは、redis-py でこれを達成する方法です。set提供されたコマンドがオブジェクトタイプまたは ID を許可していないようです。ご協力いただきありがとうございます。

4

2 に答える 2

1

別の方法:RedisWorksライブラリを使用できます。

pip install redisworks

>>> from redisworks import Root
>>> root = Root()
>>> root.item1 = {'title':'Redis is cool!', 'author':'haye321'}
>>> print(root.item1)  # reads it from Redis
{'title':'Redis is cool!', 'author':'haye321'}

post.1本当にRedis でキー名として使用する必要がある場合:

>>> class Post(Root):
...     pass
... 
>>> post=Post()
>>> post.i1 = {'title':'Redis is cool!', 'author':'haye321'}
>>> print(post.i1)
{'author': 'haye321', 'title': 'Redis is cool!'}
>>> 

Redisを確認すると

$ redis-cli
127.0.0.1:6379> type post.1
hash
于 2016-08-30T06:08:18.173 に答える
1

Redis ハッシュの個々のフィールドを 1 つずつ設定しています (ハッシュは、オブジェクトを格納するための Redis の共通データ構造です)。

これを行うためのより良い方法は、1 回の操作で特定のハッシュの複数のフィールドを設定できるRedis HMSETコマンドを使用することです。Redis-py を使用すると、次のようになります。

import redis
redisdb = redis.Redis(host="localhost",db=1)
redisdb.hmset('post:1', {'title':'Redis is cool!', 'author':'haye321'})

アップデート:

もちろん、HSETコマンドを使用して Hash フィールド メンバーを 1 つずつ設定することもできますが、フィールドごとに 1 つの要求が必要になるため、効率が低下します。

import redis
redisdb = redis.Redis(host="localhost",db=1)
redisdb.hset('post:1', 'title', 'Redis is cool!')
redisdb.hset('post:1', 'author', 'haye321'})
于 2014-03-09T22:59:09.837 に答える