控制朋友圈好友状态可见性(Python+redis实现)
来源:互联网 发布:高胜算交易策略 知乎 编辑:程序博客网 时间:2024/05/16 14:34
将数据存入redis中
import redistry: rconn=redis.StrictRedis(host='127.0.0.1',\ port=6379,db =0) # message added (hash) rconn.hset('message:1000', 'uid', '100') rconn.hset('message:1000', 'message', 'hello, I am a good man!') rconn.hmset('message:1001', {'uid': '104', 'message': 'welcome to handong province!'}) # user added (string) rconn.set('user:100', 'GaoYuliang') rconn.set('user:101', 'GaoXiaoqin') rconn.set('user:102', 'QiTongwei') rconn.set('user:103', 'LiDakang') rconn.set('uesr:104', 'HouLiangping') # friends added (set) rconn.sadd('friends:100', "101") rconn.sadd('friends:100', "102") rconn.sadd('friends:100', "103") rconn.sadd('friends:100', "100") rconn.sadd('friends:101', '100') rconn.sadd('friends:101', '102') rconn.sadd('friends:101', '101') rconn.sadd('friends:102', '100') rconn.sadd('friends:102', '101') rconn.sadd('friends:102', '104') rconn.sadd('friends:102', '102') rconn.sadd('friends:103', '100') rconn.sadd('friends:103', '104') rconn.sadd('friends:103', '103') rconn.sadd('friends:104', '102') rconn.sadd('friends:104', '103') rconn.sadd('friends:104', '104') # like added (set) rconn.sadd('like:1000', "101") rconn.sadd('like:1000', "102") rconn.sadd('like:1000', "103") rconn.sadd('like:1001', "103")except Exception, e: print e
业务逻辑实现
import redistry: rconn=redis.StrictRedis(host='127.0.0.1',\ port=6379,db =0) openlist = [] loginuser = 103 for personid in range(100, 105): # get all the people open to me keyname = "friends:" + str(personid) #print rconn.sismember(keyname, loginuser) if rconn.sismember(keyname, loginuser): openlist.append(personid) # get all the message which belongs to the people in the openlist for messid in range(1000, 1002): keyname = "message:" + str(messid) uid = rconn.hget(keyname, "uid") if int(uid) in openlist: msbody = rconn.hget(keyname, "message") like_keyname = "like:" + str(messid) # like people set print rconn.get("user:" + uid) + ": " + msbody for person in rconn.smembers(like_keyname): if int(person) in openlist: print rconn.get("user:" + person) + " like this"except Exception, e: print e
一点体会
redis将数据以键值对的方式存储。与mysql相比,将不同表之间的关系同样离散为特定的键值对。
redis可以通过将id等信息整合进键名中进行唯一标识。
使用mysql时,我们用到了多表连接查询,在redis中是如何实现的呢?
答案是redis的键名中包含着id信息,利用循环可以实现对一定范围内的键名遍历。而在关系型数据库中,各种id正是进行表连接的桥梁。
同时有效利用redis的set、hash等数据结构,能简化这一过程。
0 0
- 控制朋友圈好友状态可见性(Python+redis实现)
- 控制朋友圈好友状态可见性的数据表设计
- Python爬朋友圈好友信息
- IOS下微信好友和朋友圈分享实现
- 微信好友三天可见的暗示:朋友圈商业化已是不归路
- 对象可见性控制
- android 应用实现微信好友或朋友圈分享
- 微信实现转发到朋友圈或者好友
- android 应用实现微信好友或朋友圈分享
- iOS9中实现微信分享到好友、朋友圈
- android应用中分享到微信好友和朋友圈的实现
- jssdk实现自定义分享到微信好友和微信朋友圈
- Android 实现微信分享好友和朋友圈
- 控制符号的可见性
- 控制符号的可见性
- 控制符号的可见性
- Redis实现好友关注关系的思路
- Redis实现好友关注关系的思路
- 数据挖掘包
- 树莓派学习-I2c通信
- 代理模式
- 第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory
- 1059
- 控制朋友圈好友状态可见性(Python+redis实现)
- 华为机试专辑【11-15题】
- shell写循环ssh登陆多机执行命令
- ccs5.4安装说明
- 金牌、银牌、铜牌--链表
- 20个令人惊叹的深度学习应用
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- P3673 小清新计数题
- 技能终将过时,而能力与时俱进