【Redis】九种数据类型及应用场景
Redis支持九种数据类型,分别是:
- String(字符串)
- Hash(哈希)
- List(列表)
- Set(集合)
- Sorted Set(有序集合)
- Bitmap(位图)
- HyperLogLog(基数估算)
- Geo(地理位置)
- Stream(流)
下面是每种数据类型的简单应用场景:
String(字符串):
存储用户信息,如会话、配置文件、计数器等。
Hash(哈希):
存储用户的个人信息,如社交网站的用户详情。
List(列表):
实现消息队列,如任务队列。
Set(集合):
实现共同好友、标签等功能,如推荐好友。
Sorted Set(有序集合):
实现排行榜,如游戏排名。
Bitmap(位图):
实现用户访问统计,如每日用户访问数。
HyperLogLog(基数估算):
实现去重计数,如网站访问统计。
Geo(地理位置):
实现位置服务,如附近的人。
Stream(流):
实现消息流,如日志记录。
以下是使用Redis数据类型的示例代码:
# 字符串
import redis
r = redis.Redis()
r.set('user:1000:username', 'John')
print(r.get('user:1000:username'))
# 哈希
r.hset('user:1000', 'username', 'John')
print(r.hgetall('user:1000'))
# 列表
r.lpush('user:1000:visits', 'home')
r.lpush('user:1000:visits', 'about')
print(r.lrange('user:1000:visits', 0, -1))
# 集合
r.sadd('user:1000:following', 'JohnDoe')
r.sadd('user:1000:following', 'JaneDoe')
print(r.smembers('user:1000:following'))
# 有序集合
r.zadd('user:1000:scores', {'math': 90, 'physics': 85})
print(r.zrange('user:1000:scores', 0, -1, withscores=True))
# 位图
r.setbit('user:1000:visits', 1, 1)
r.setbit('user:1000:visits', 10, 1)
print(r.get('user:1000:visits'))
# 基数估算
r.pfadd('page:views', 'user1')
r.pfadd('page:views', 'user2')
r.pfadd('page:views', 'user1')
print(r.pfcount('page:views'))
# 地理位置
r.geoadd('city:locations', 13.361389, 38.115556, 'Palermo')
r.geoadd('city:locations', 15.087269, 37.502669, 'Catania')
print(r.georadius('city:locations', 15, 37, 100, unit='km', withcoords=True))
# 流
以上代码仅展示了如何使用每种数据类型,具体应用场景需要根据实际需求设计。
评论已关闭