manipulate redis

67 阅读1分钟
# Redis 6.0.16
# RedisInsight 2.40.0
# redis==5.0.1

r = redis.Redis(host=<ip>, port=6379, db=0, password='')

*string
    add/update
      r.set('str', 'ss')
      r.mset({'str2': '222', 'str3': '333'})
    get
      r.get('str')
      r.mget(['str', 'str2'])
    delete
      r.delete('str2', 'str3')

*hash
    add/update
      r.hset('name', 'c0', 'v0')
      r.hset('name', mapping={'c1': 'v1', 'c2': 'v2'})
    get
      r.hget('name', 'c0')
      r.hlen('name')
      r.hexists('name', 'c0')
      r.hmget('name', ['c0', 'c1'])
      r.hkeys('name')
      r.hvals('name')
    del
      xx = r.hkeys('name')
      r.hdel('name', xx[-1], xx[-2])

*list
    add
      r.lpush('jj', '00')
      r.rpush('jj', 'r0')
    update
       r.lset('jj', 0, 'j0')
       r.rpoplpush('jj', 'jj')
    get
      r.lpop('jj')
      r.rpop('jj')
      r.lpos('jj', 'r0')  # return the value index or None
      r.lrange('jj', 0, -1)
    del
      r.ltrim('jj', 0, 2)  # removing all values not within the slice
      r.lrem('jj', 2, 'r0')  # remove 2 data with value 'r0'

*set/sorted set (s/z)
    add
      r.sadd('ss', 'ssss')
      r.sadd('ss', *{'s1', 's2'})
    get
      r.scard('ss')
      r.smembers('ss')
      r.spop('ss')  # return a random member
      r.sismembers('ss', 'ssss')
      r.sdiff('ss', 'ss2')
      r.sinter('ss', 'ss2')
      r.sunion('ss', 'ss2')
    del
      r.srem('ss', 'ssss')

*stream
    Stream Data
    Consumer Groups
    Last_Delivered ID
    Pending

    r.xgroup_create(stream_name, group_name, id='0', mkstream=True)
    messages = r.xreadgroup(group_name, consumer_name, {stream_name: '0'})
    for message in messages:
        for msg_id, msg_data in message[1]:
            print(f"ID: {msg_id}, Data: {msg_data}")
            r.xack(stream_name, group_name, msg_id)

    r.xadd(stream_name, {'field1': '#1', 'field2': '#2'})