python reids所有类型操作

import redis

r = redis.Redis(host='localhost', password='root', port=6379, db=0)

# 1.string数据类型的一些基本操作命令,可以根据实际需求进行使用
# 设置key对应的value值
r.set(key, value)
r.set('name', 'Tom')
# 获取key对应的value值
r.get(key)
name = r.get('name')
# 批量设置多个key-value对
r.mset(mapping)
r.mset({'name': 'Tom', 'age': 18})
# 批量获取多个key对应的value值
r.mget(keys)
values = r.mget(['name', 'age'])
# 将key对应的value值增加amount
r.incr(key, amount=1)
r.set('count', 1)
r.incr('count')
# 将key对应的value值减少amount
r.decr(key, amount=1)
r.set('count', 10)
r.decr('count', 5)
# 将value追加到key对应的value值的末尾
r.append(key, value)
r.set('name', 'Tom')
r.append('name', ' Smith')
# 获取key对应的value值的长度
r.strlen(key)
name_len = r.strlen('name')

# 2.键命令
# 设置键值对,如果键已经存在,则覆盖原有的值。
r.set('name', 'Alice')

# 获取键对应的值
name = r.get('name')
print(name)

# 删除指定的键值对
r.delete('name')

# 检查指定的键是否存在
exists = r.exists('name')
print(exists)

# 查找所有符合给定模式的键
keys = r.keys('*')
print(keys)

# 获取键的过期时间,单位为秒。
ttl = r.ttl('name')
print(ttl)

# 设置键的过期时间,单位为秒。
r.expire('name', 60)

# 移除键的过期时间,使其永久有效。
r.persist('name')

# 获取键对应的值的数据类型
type = r.type('name')

# 3.hash

# 设置 Hash 中指定字段的值
r.HSET(key, field, value)
r.hset('user:1', 'name', 'Alice')

# 获取 Hash 中指定字段的值
r.HGET(key, field)
r.hget('user:1', 'name')

# 设置 Hash 中多个字段的值
r.HMSET(key, mapping)
r.hmset('user:1', {'age': 20, 'gender': 'female'})

# 获取 Hash 中多个字段的值
r.HMGET(key, fields)
r.hmget('user:1', 'name', 'age', 'gender')

# 获取 Hash 中所有字段和值
r.HGETALL(key)
r.hgetall('user:1')

# 删除 Hash 中指定字段
r.HDEL(key, field)
r.hdel('user:1', 'gender')

# 判断 Hash 中是否存在指定字段
r.HEXISTS(key, field)
r.hexists('user:1', 'gender')

# 获取 Hash 中所有字段
r.HKEYS(key)
r.hkeys('user:1')

# 获取 Hash 中所有值
r.HVALS(key)
r.hvals('user:1')

# 获取 Hash 中字段的数量
r.HLEN(key)
r.hlen('user:1')

# 4.List操作
# 一. 插入元素
# 在List的头部插入一个或多个元素:
r.lpush('list_key', 'value1', 'value2', 'value3')

# 在List的尾部插入一个或多个元素:
r.rpush('list_key', 'value4', 'value5', 'value6')

# 在指定元素前或后插入一个元素:
r.linsert('list_key', 'BEFORE', 'value2', 'new_value')
r.linsert('list_key', 'AFTER', 'value2', 'new_value')

# 二、获取元素
# 获取List中指定范围内的元素:
r.lrange('list_key', 0, -1)  # 获取所有元素
r.lrange('list_key', 0, 2)  # 获取前三个元素
r.lrange('list_key', -3, -1)  # 获取后三个元素

# 获取List中指定索引的元素:
r.lindex('list_key', 0)  # 获取第一个元素
r.lindex('list_key', -1)  # 获取最后一个元素

# 三. 删除元素
# 从List的头部删除一个元素:
r.lpop('list_key')

# 从List的尾部删除一个元素:
r.rpop('list_key')

# 删除List中指定的元素:
r.lrem('list_key', 0, 'value2')  # 删除所有值为value2的元素
r.lrem('list_key', 1, 'value2')  # 删除第一个值为value2的元素
r.lrem('list_key', -1, 'value2')  # 删除最后一个值为value2的元素

# 其他操作
# 获取List的长度:
r.llen('list_key')
# 将List中的最后一个元素移动到另一个List的头部:
r.rpoplpush('list_key', 'new_list_key')
# 阻塞式地从一个List的尾部弹出一个元素,并将其插入到另一个List的头部:
r.brpoplpush('list_key', 'new_list_key', timeout=0)

# 5.Set是一个无序的集合,它的作用和List类似,都是用来存储多个字符串元素的集合。但是Set不同于List的是,Set中不允许出现重复的元素,而且Set中的元素是无序的。
# 添加元素
# 添加单个元素
r.sadd('set_key', 'value1')
# 添加多个元素
r.sadd('set_key', 'value2', 'value3', 'value4')

# 获取元素
# 获取所有元素
members = r.smembers('set_key')
print(members)
# 判断元素是否存在
is_member = r.sismember('set_key', 'value1')
print(is_member)

# 删除元素
# 删除单个元素
r.srem('set_key', 'value1')
# 删除多个元素
r.srem('set_key', 'value2', 'value3', 'value4')
# 删除集合
r.delete('set_key')

# 集合运算
# 求交集
r.sadd('set_key1', 'value1', 'value2', 'value3')
r.sadd('set_key2', 'value2', 'value3', 'value4')
intersection = r.sinter('set_key1', 'set_key2')
print(intersection)
# 求并集
union = r.sunion('set_key1', 'set_key2')
print(union)
# 求差集
difference = r.sdiff('set_key1', 'set_key2')
print(difference)

# 6.ZSET(有序集合)是一种特殊的数据结构,它是一个键值对集合,其中每个元素都关联着一个浮点数分数。这个分数被用来按照从最小值到最大值的顺序排序元素。ZSET 的成员是唯一的,但分数(score)却可以重复。

# 添加元素
# zadd(name, mapping)name 是有序集合的名称,mapping 是一个字典,表示要添加的元素和它们的分数
r.zadd('myzset', {'one': 1, 'two': 2, 'three': 3})

# 获取元素
# zrange(name, start, end, withscores=False)name 是有序集合的名称,start 和 end 分别表示要获取的元素的起始位置和结束位置(从 0 开始计数),withscores 表示是否同时返回元素的分数
r.zrange('myzset', 0, -1, withscores=True)

# 获取元素数量
# zcard(name) name 是有序集合的名称
r.zcard('myzset')

# 获取元素排名
# zrank(name, value)name 是有序集合的名称,value 是要获取排名的元素
r.zrank('myzset', 'two')

# 获取元素分数
# zscore(name, value)name 是有序集合的名称,value 是要获取分数的元素
r.zscore('myzset', 'two')

# 删除元素
# zrem(name, values)name 是有序集合的名称,values 是要删除的元素
r.zrem('myzset', 'two')

# 获取指定分数范围内的元素
# name 是有序集合的名称,min 和 max 分别表示要获取的分数范围的最小值和最大值,start 和 num 分别表示要获取的元素的起始位置和数量(从 0 开始计数),withscores 表示是否同时返回元素的分数,score_cast_func 表示分数的类型转换函数。
# zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float)
r.zrangebyscore('myzset', 1, 2, withscores=True)




  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值