NoSQL数据库:Redis
Redis是一个开源的,基于内存的数据结构存储系统,可以用作数据库、缓存和消息传递队列。
以下是一些Redis的基本操作和示例代码:
- 连接Redis服务器
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
- 设置键值对
r.set('foo', 'bar')
- 获取键值
r.get('foo')
- 删除键值对
r.delete('foo')
- 设置带有过期时间的键值对
r.setex('hello', 10, 'world') # 键'hello'在10秒后过期
- 批量设置键值对
r.mset({'key1': 'value1', 'key2': 'value2'})
- 批量获取键值对
r.mget(['key1', 'key2'])
- 使用哈希表
r.hset('hash_key', 'field1', 'value1')
r.hget('hash_key', 'field1')
- 列表操作
r.rpush('list_key', 'value1')
r.lpush('list_key', 'value2')
r.lrange('list_key', 0, -1) # 获取列表所有元素
- 集合操作
r.sadd('set_key', 'member1')
r.smembers('set_key') # 获取集合所有成员
- 有序集合操作
r.zadd('zset_key', {'member1': 1})
r.zrange('zset_key', 0, -1) # 获取有序集合所有成员
- 通过Lua脚本执行多个命令
script = """
local num = redis.call('incr', KEYS[1])
if num == 1 then
redis.call('expire', KEYS[1], ARGV[1])
end
return num
"""
r.eval(script, 1, 'mykey', 10)
- 监听键空间通知
# 首先在Redis配置文件中开启键空间通知
r.psubscribe(**{'__keyevent@0__:set': lambda *args: print(args)})
以上是Redis操作的基本示例,Redis还有很多高级特性和使用场景,如分布式锁、队列等,需要根据具体需求进行使用。
评论已关闭