Redis知识点总结
Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
以下是一些Redis的常用知识点和操作示例:
- 字符串类型的数据操作:
# 设置键值
redis.set('key', 'value')
# 获取键值
value = redis.get('key')
# 更新键值
redis.set('key', 'new_value')
- 哈希表操作:
# 设置哈希表字段
redis.hset('hash_key', 'field1', 'value1')
# 获取哈希表字段
value = redis.hget('hash_key', 'field1')
# 获取哈希表所有字段值
values = redis.hgetall('hash_key')
- 列表操作:
# 在列表左侧插入元素
redis.lpush('list_key', 'value1')
# 在列表右侧插入元素
redis.rpush('list_key', 'value2')
# 获取列表指定范围内的元素
values = redis.lrange('list_key', 0, -1)
- 集合操作:
# 添加元素到集合
redis.sadd('set_key', 'member1')
# 获取集合所有成员
members = redis.smembers('set_key')
- 有序集合操作:
# 添加元素到有序集合
redis.zadd('zset_key', {'member1': 1})
# 获取有序集合范围内的成员
members = redis.zrange('zset_key', 0, -1)
- 事务操作:
# 开启事务
pipeline = redis.pipeline()
# 将多个命令加入到事务中
pipeline.set('key1', 'value1')
pipeline.set('key2', 'value2')
# 执行事务
pipeline.execute()
- 键管理操作:
# 查找所有符合模式的键
keys = redis.keys('*')
# 删除键
redis.delete('key')
# 获取键的过期时间
ttl = redis.ttl('key')
- 持久化操作:
# 手动触发RDB持久化
redis.save()
# 手动触发AOF持久化
redis.bgsave()
- 发布/订阅操作:
# 订阅频道
pubsub = redis.pubsub()
pubsub.subscribe('channel1')
# 发布消息
redis.publish('channel1', 'message')
- 分布式锁操作:
# 使用SET命令的NX选项实现分布式锁
import time
start = time.time()
while time.time() - start < 10:
if redis.set('lock_key', 'value', nx=True, ex=5):
# 获取锁成功,执行业务逻辑
try:
# 业务逻辑代码
pass
finally:
# 释放锁
redis.delete('lock_key')
break
time.sleep(0.5)
这些操作都是基于redis-py库进行的,这是一个Python操作Redis的库。在实际应用中,可以根据需要选择合适的数据类型和操作命令。
评论已关闭