实时统计群消息排行

实时统计群消息排行

分析

IM 开放平台没有提供类似查询消息数量的接口,只能使用回调函数;

使用【群内发言之后回调】API,在发言之后记录该群的消息数到 DB,以便后续统计。

Redis

  1. 每分钟生成一个 zset(回调函数触发),如:key = group_message_count:202006061257group_message_count:202006061258group_message_count:202006061259
  2. 设置过期时间如十分钟后过期 expire group_message_count:202006061257 60*10,添加 key 和设置过期时间通过 lua 或 pipeline 实现;
  3. 使用 zunionstore 命令查多个 zset 集合的并集
Read More
「附近的人」解决方案

「附近的人」解决方案

计算十二小时之内附近的活跃用户

关键词:十二小时之内

【添加坐标】

geoadd active-user 116.48105 39.996794 Harry
geoadd active-user 117.48105 32.996794 Jessica
......

【两点之间距离】

geolist active-user Harry Jessica [m/km/ml/ft]

【查找附近的人,根据目标元素查找】

# 查看 Harry 附近 2 km 之内的 20 个用户,并显示距离。
georadiusbymember active-user Harry 2 km WITHDIST COUNT 20
Read More
MongDB常用操作

MongDB常用操作

Reference:https://docs.mongodb.com/manual/tutorial/iterate-a-cursor/

在 Mongo Shell 中使用游标

db.collection.find() 方法返回一个游标,要访问文档需要迭代游标。然而在 mongo shell 中如果没有使用 var 关键字分配给返回的游标变量,游标会自动迭代 20 次最多返回 20 条数据。

以下案例演示如何使用游标访问文档以及如何使用游标索引。

Read More
MongoDB官网入门指南

MongoDB官网入门指南

Reference: https://docs.mongodb.com/guides/

保护你部署的 MongoDB

介绍如何在本地 MongDB 部署中使用强制认证

1.通过 mongo shell 连接到 MongoDB 服务端

mongo --host <HOSTNAME> --port <PORT> # 默认端口 27017

2.切换到 admin 数据库

use admin
Read More
MongoDB备份恢复

MongoDB备份恢复

备份

mongodump -h dbhost -d dbname -o dbdirectory

  • -h:服务器地址,也可以指定端口号:127.0.0.1:27017

  • -d:需要备份的数据库实例,例如:test

  • -o:备份的数据存放位置

Read More