博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
控制朋友圈好友状态可见性(Python+redis实现)
阅读量:4091 次
发布时间:2019-05-25

本文共 2583 字,大约阅读时间需要 8 分钟。

将数据存入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等数据结构,能简化这一过程。

转载地址:http://xbdii.baihongyu.com/

你可能感兴趣的文章
pixhawk(PX4)的一些论坛网站(包括中文版的PX4用户手册和PX4开发手册)
查看>>
串级 PID 为什么外环输出是内环的期望?(和我之前对串级PID的总结一样)
查看>>
我刚刚才完全清楚GPS模块的那根杆子是怎么固定安装好的
查看>>
去github里面找找也没有别人无人机+SLAM的工程
查看>>
PX4与ROS关系以及仿真控制(键盘控制无人机)
查看>>
我对无人机重心高度的理解
查看>>
现在明白为什么无名博客里好几篇文章在讲传感器的滞后
查看>>
实际我看Pixhawk定高模式其实也是飞得很稳,飘得也不厉害
查看>>
Pixhawk解锁常见错误
查看>>
C++的模板化等等的确实比C用起来方便多了
查看>>
ROS是不是可以理解成一个虚拟机,就是操作系统之上的操作系统
查看>>
用STL algorithm轻松解决几道算法面试题
查看>>
ACfly之所以不怕炸机因为它觉得某个传感器数据不安全就立马不用了
查看>>
我发觉,不管是弄ROS OPENCV T265二次开发 SDK开发 caffe PX4 都是用的C++
查看>>
ROS的安装(包含文字和视频教程,我的ROS安装教程以这篇为准)
查看>>
国内有个码云,gitee
查看>>
原来我之前一直用的APM固件....现在很多东西明白了。
查看>>
realsense-ros里里程计相关代码
查看>>
似乎写个ROS功能包并不难,你会订阅话题发布话题,加点逻辑处理,就可以写一些基础的ROS功能包了。
查看>>
if __name__ == ‘__main__‘:就是Python里的main函数,脚本从这里开始执行,如果没有main函数则从上到下顺序执行。
查看>>