Redis(一)
redis下载地址:http://redis.io/
import redis
redis_conn = redis.Redis(host='127.0.0.1', port=6379)
for key in redis_conn.keys():
redis_conn.delete(key)
使用hash,类似map的形式,存储(Id,标题)数据
for idx in range(101, 106):
redis_conn.hset("articles", str(idx), f"this is {idx} article title")
展示所有的文章列表
for article_id, article_title in redis_conn.hgetall("articles").items():
print(article_id, article_title)
print(article_id.decode("utf-8"), article_title.decode("utf-8"))
展示单个文章的标题
redis_conn.hget("articles", "105").decode("utf-8")
用户访问文章则产生行为记录
def user_visit(uid, article_id):
"""
产生了行为:uid访问了article_id
"""
# 1. String结构,文章的访问次数加1
redis_conn.incr(f"article_counter_{article_id}")
# 2. List结构,记录uid的访问列表
redis_conn.lpush(f"user_visit_{uid}", str(article_id))
# 3. Set结构,记录uid的全站集合
redis_conn.sadd(f"all_visit_uids", str(uid))
# 4. SortedSet结构,文章的热度加1
redis_conn.zincrby("article_hots", 1, str(article_id))
模拟3个用户的访问记录
user_visit("uid_01", "101")
user_visit("uid_01", "102")
user_visit("uid_01", "103")
user_visit("uid_02", "102")
user_visit("uid_02", "103")
user_visit("uid_02", "104")
user_visit("uid_03", "103")
user_visit("uid_03", "104")
user_visit("uid_03", "105")
查询文章的访问次数
redis_conn.get(f"article_counter_104").decode('utf-8')
redis_conn.get(f"article_counter_105").decode('utf-8')
展示一个用户的访问历史
redis_conn.lrange("user_visit_uid_01", 0, -1)
redis_conn.lrange("user_visit_uid_03", 0, -1)
展示访问全站的用户集合
redis_conn.smembers("all_visit_uids")
展示文章热榜以及热度
redis_conn.zrange("article_hots", 0, -1, withscores=True, desc=True)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具