VR全景图片 sqlite serialization vuejs2 fonts pagination tree ftp jQuery Mobile nginx视频教程 seo教程下载 kb转mb git显示所有远程分支 ajax里面可以嵌套ajax吗 js原生点击事件 python函数返回 javafor循环 java结构 java编程语言 java框架学习 js倒计时代码 js删除节点 kmservice spoonwep skycc组合营销软件 c4dr19 圆角矩形工具改变弧度 万能低格工具还原u盘 超级网游助手 复仇之矛天赋 摇骰子表情包 微信小程序循环 fla文件用什么打开 set函数 图片格式转换工具 女漫游刷图加点 华为虚拟按键 小米6拆机视频 微信石头剪刀布 tiff是什么格式
当前位置: 首页 > 学习教程  > 编程学习

Redis实现微博后台业务逻辑系列(七)

2021/1/9 2:07:49 文章标签: 微博取消赞

微博点赞功能的实现: 12345678910111213141516171819202122232425262728293031323334353637383940414243import redis class LikeMessage(object): """实现微博点赞功能""" def __init__(self, msg_id, client): self.msg_id msg_id…

微博点赞功能的实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import  redis
 
class  LikeMessage( object ):
     """实现微博点赞功能"""
     def  __init__( self , msg_id, client):
         self .msg_id  =  msg_id
         self .client  =  client
         self .key  =  "weibo::message::"  +  str (msg_id)  +  "::like"
         
     def  like( self , user_id):
         """对该微博点赞"""
         self .client.sadd( self .key, user_id)
         
     def  is_liking( self , user_id):
         """检查用户是否赞了该微博"""
         return  self .client.sismember( self .key, user_id)
         
     def  undo( self , user_id):
         """取消点赞"""
         self .client.srem( self .key, user_id)
         
     def  count( self ):
         """获取该微博点赞人数"""
         return  self .client.scard( self .key)
         
     def  get_all_liking_user( self ):
         """返回赞了该微博的所有用户"""
         if  not  self .client.exists( self .key):
             return  False
         else :
             return  self .client.smembers( self .key)
             
             
if  __name__  = =  "__main__" :
     redis_client  =  redis.StrictRedis()
     vote  =  LikeMessage( 65535 , redis_client)
     vote.like( 10010 )
     vote.like( 10086 )
     vote.like( 10000 )
     print (vote.count())
     print (vote.is_liking( 10086 ))
     vote.undo( 10086 )
     print (vote.get_all_liking_user())

    在这里我们使用无序集合键来保存对微博的点赞信息,我们在之前的文章已经用无序集合键实现了保存微博用户之间的关系,无序集合键还可以实现例如书籍的标签信息,个人标签等。只要是不在乎数据存储的顺序,并且数据必须是唯一的,都可以用无序集合键来实现功能。对于每条微博,redis都会创建一个"weibo::message::<id>::like"的无序集合键来存储对该微博点赞的用户。

本文转自戴柏阳的博客博客51CTO博客,原文链接http://blog.51cto.com/daibaiyang119/1963055如需转载请自行联系原作者


daibaiyang119


本文链接: http://www.dtmao.cc/news_show_1100314.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?