传奇sf,传奇私服发布网,新开一秒传奇
当前位置:网站首页 > 传奇私服 > 正文

传奇私服聊天记录不会储存

作者:admin发布时间:2021-10-07分类:传奇私服浏览:232评论:1


导读:1.1k发布于2018-06-01✓已被采纳理论上是可以的,但是极其不推荐!!!比如我想到可以使用中的keys特性:假设和发送了2条消息,那么可以储存为:=(host='',p...

传奇私服聊天记录不会储存与聊天记录

1.1k

发布于2018-06-01

✓已被采纳

理论上是可以的,但是极其不推荐!!!

比如我想到可以使用中的keys特性:

假设和发送了2条消息,那么可以储存为:

=(host='',port=6379)#按照+时间戳来设置key,为聊天记录内容conn.set('User_a:User_b:****50809001','msg1')#设置过期时间为3secondconn.set('User_a:User_b:****50809002','msg2',ex=3)#通过Redis.keys来获取所有`User_a`发送给`User_b`的信息的key传奇私服聊天记录不会储存smsg_keys=conn.keys('User_a:User_b:*')#通过获得的keys来获取所有信息内容msgs=conn.mget(msg_keys)ifmsg_keyselse[]

但是我们看到由于redis是按照键值对来存储数据的,它查询数据不是很方便,也不支持一些比较复杂的条件查询,甚至对于上面这个解决方案,还可能存在性能问题,参考:redis生产环境中慎用keys模糊匹配方法.keys方法可以换成scan_iter方法.

综上,用redis来存储聊天记录不是一个很明智的选择.redis不是天生用来做这个事情的.

我推荐使用mongodb来实现,参考:ExpireDatafromCollectionsbySettingTTL.当然关系数据库也可以实现这个业务需求,需要加一个create_time字段,然后每次查询的时候只查出没过期的聊天记录,即是满足create_time+expiresdatetime.now()的聊天记录.


已有1位网友发表了看法:

欢迎 发表评论: