Redis知识点
Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
问题:Redis的知识点有哪些?
解答:Redis支持的数据类型包括String、Hash、List、Set、Sorted Set。
解决方案:
字符串(String)
可以存储任何类型的字符串,包括二进制、序列化的对象等。
# 设置键值 redis.set('key', 'value') # 获取键值 redis.get('key')
哈希表(Hash)
是一个键值对的集合。
# 设置哈希表字段 redis.hset('hash_key', 'field1', 'value1') # 获取哈希表字段 redis.hget('hash_key', 'field1')
列表(List)
是一个顺序的元素列表。
# 在列表头部插入元素 redis.lpush('list_key', 'value1') # 在列表尾部插入元素 redis.rpush('list_key', 'value2') # 获取列表指定范围内的元素 redis.lrange('list_key', 0, -1)
集合(Set)
是一个不允许重复的字符串集合。
# 添加成员 redis.sadd('set_key', 'value1') # 获取集合中的所有成员 redis.smembers('set_key')
有序集合(Sorted Set)
是一个不允许重复的字符串集合,每个元素都关联一个浮点数。
# 添加成员 redis.zadd('zset_key', {'value1': 1}) # 获取指定范围内的成员 redis.zrange('zset_key', 0, -1)
发布/订阅
消息队列模式,可以实现消息的发布和订阅。
# 发布消息 redis.publish('channel', 'message') # 订阅频道 redis.subscribe('channel')
事务
一组命令的集合。
# 开启事务 redis.multi() # 执行事务 redis.exec()
锁
使用Redis实现分布式锁。
# 获取锁 redis.set('lock_key', 'value', NX, PX, 30000) # 释放锁 redis.delete('lock_key')
持久化
Redis支持两种持久化方式:RDB(默认)和AOF。
# RDB方式,在指定的时间间隔内将内存中的数据集快照写入磁盘 redis.bgsave() # AOF方式,记录每次写操作,重启时重放 redis.bgrewriteaof()
- 内存管理
提供了内存淘汰策略,如noeviction(不进行淘汰)、allkeys-random(在键空间中随机淘汰)、volatile-random(在设置了过期时间的键空间中随机淘汰)。
# 设置淘汰策略
redis.config('maxmemory-policy', 'allkeys-random')
评论已关闭