не удается вставить данные с помощью ZADD (отсортированный набор) в Redis с использованием Python

1

Я хотел бы вставить данные в набор soretd в redis, используя python, чтобы выполнять сложные запросы, например, по диапазону и т.д.

import redis
redisClient = redis.StrictRedis(host='localhost', port=6379,db=0)

redisClient.zadd("players",1,"rishu")

но когда я запускаю вышеуказанный код кода, я получаю следующую ошибку:

AttributeError: 'str' object has no attribute 'items'

Что я делаю неправильно здесь. С помощью этой ссылки для refercne https://pythontic.com/database/redis/sorted%20set%20-%20add%20and%20remove%20elements

Теги:
search
redis

3 ответа

0

@TheDude почти близко.

Более новая версия redis из (redis-py 3.0), сигнатура метода была изменена. Наряду с ZADD также были изменены подписи MSET и MSETNX.

Старая подпись была:

data = "hello world"
score = 1 
redis.zadd("redis_key_name", data, score) # not used in redis-py > 3.0

Новая подпись:

data = "hello world"
score = 1 

redis.zadd("redis_key_name", {data: score})

Чтобы добавить несколько раз:

data1 = "foo"
score1 = 10

data2 = "bar"
score2 = 20

redis.zadd("redis_key_name", {data1: score1, data2: score2})

Вместо args/kwargs ожидается диктофон с ключом, поскольку данные и значение - это оценка ZADD. Нет никаких изменений в возврате данных.

  • 0
    Спасибо за ответ. У меня есть следующая версия redis Redis версии 3.0.503.Пробована с обоими упомянутыми вами подходами .got: следующая ошибка AttributeError: модуль 'redis' не имеет атрибута zadd.
  • 0
    Можете ли вы показать полный код с импортом и повторной инициализацией
Показать ещё 3 комментария
0

Думайте, что вы используете более новую версию библиотеки redis. Из документации здесь видно, что подпись метода изменилась. Думайте, что это сработает:

redisClient.zadd("players", rishu=1)

  • 0
    Опробовал подход, которым вы поделились .. получил следующую ошибку TypeError: zadd () получил неожиданный аргумент ключевого слова 'rishu'
0

rediscleint.execute_command ("ZADD", "rishu", 1, "123"). Это работает... пытаясь понять, как добавлять элементы в отсортированные множества без использования функции execute_commnad.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню