Redis系列之-数据结构设计.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? ? redis系列之--数据结构设计 ? ? redis系列之–数据结构设计 redis数据结构和常用操作 String --语法格式:key value 可理解为{key:value} 记录字符串/整数/浮点数 命令 set 添加/修改数据 get 获取数据 mset 添加多个数据 mget 获取多个数据 incr 计数加1 decr 计数减1 incrby 计数加n 键命令 适用于所有的类型 命令 del 删除数据 exists 判断数据是否存在 expire 设置过期时间 ttl 获取剩余时间 keys 查询满足条件的键 hash --语法格式:key field1 value1 field2 value2 … 可理解为可以key:{ field1: value1, field2 :value2 …} 类似字典的结构 命令 hset 添加字段 hget 获取字段 hmset 添加多个字段 hmget 获取多个字段 hdel 删除字段 list --语法格式:key value1 [value2, …] 可理解为key:[value1, value2, …] 是一个双向链表 命令 lpush 从左侧追加元素 lrange 从左侧遍历元素 rpush 从右侧追加元素 lset 从左侧修改元素 lpop 从左侧删除元素 rpop 从右侧删除元素 ltrim 裁切列表 zset --语法格式:key score member [score member …] 可理解为key:{member1:score1, member2:score2, …} 有序集合, 按照分数(score)进行排序 命令 zadd 添加/修改元素 zrange 遍历元素(按分数从小到大) zrevrange 反向遍历元素(从大到小) zrangebyscore 遍历指定分数范围的元素 zscore 查询元素的分数 zrem 删除元素 zincrby 元素的分数计数加n set --语法格式:key member [member … 可理解为key:[member1, member2, …] 无序集合 无序+去重 命令 sadd 添加元素 smembers 遍历元素 sismember 判断是否包含 srem 删除元素 数据结构设计案例 新闻页面 记录某条新闻的详细数据 hash 记录新闻id string 记录最新的100条新闻 list 记录所有的新闻及点赞数 zset 记录对某条新闻点赞的用户 set from redis import Redis # 创建redis客户端 # redis-py 3.0 之前需要使用 StrictRedis() 来建立数据库连接对象 # redis_client = StrictRedis(host=, port=6379, db=0, decode_responses=True) redis_client = Redis(decode_responses=True) def release_news(title, content): 发布新闻 :param title: 新闻标题 :param content: 新闻内容 # 生成新闻id news_id = redis_client.incr(news_id) # incr返回的是当前的计数, 类型为整型 news_key = news: + str(news_id) # 记录新闻数据到hash中 redis_client.hmset(news_key, { title: title, content: content }) # 设置缓存(过期)时间 7天 redis_client.expire(news_key, 7 * 86400) # 将新闻保存到最新发布列表中 redis_client.lpush(latest_news_list, news_key) # 裁切发布列表 只保留100条新闻 redis_client.ltrim(latest_news_list, 0, 99) # 将新闻保存到新闻有序集合中 redis_client.zadd(news_zset, {news_key: 0}) def show_latest_news(): 获取最新的30条新闻 return redis_client.lrange(latest_news_list, 0, 29) def show_fav_news(): 获取30条最受欢

文档评论(0)

科技之佳文库 + 关注
官方认证
内容提供者

科技赋能未来,创新改变生活!

版权声明书
用户编号:8131073104000017
认证主体重庆有云时代科技有限公司
IP属地浙江
统一社会信用代码/组织机构代码
9150010832176858X3

1亿VIP精品文档

相关文档