文章目录
前言
站内信使用场景广泛:
- 社交媒体:用户间私信、关注通知、好友请求等。
- 在线学习:教师与学生沟通、课程提醒、成绩反馈等。
- 电商平台:订单状态更新、促销信息、客户咨询回复等。
- 企业管理:内部通知、员工互动、项目协作等。
使用站内信的原因包括:
- 隐私保护:用户间的交流更加私密,避免公开曝光。
- 即时沟通:提供实时或定时通知,确保信息迅速传达。
- 用户参与:增强用户互动,提升平台的活跃度和用户粘性。
- 信息集中:将所有沟通集中在一个平台,方便管理和查找历史记录。
- 个性化体验:根据用户行为推送相关信息,提高用户满意度。
- 减少噪音:相较于电子邮件,站内信可以减少信息干扰,提升重要信息的可见性
使用站内信的原因、场景很多,但是接下只是一个非常简单的,使用Redis来实现站内信的方法
一、站内信是什么?
站内信是指在特定平台或系统内(如社交媒体、论坛、在线商城等)用户之间进行的信息传递。与电子邮件不同,站内信通常只在该平台的环境中使用,无法发送到外部邮箱。
二、使用步骤
1.引入库
import (
"fmt"
"github.com/go-redis/redis"
"log"
"time"
)
2.信息写入Redis
//添加站内信到Redis
func InsertMessageToRedis(client *redis.Client, userID string, message string) error {
//使用LPUSH将站内信推入用户对应的列表
_, err := client.LPush(fmt.Sprintf("user_messages:%s", userID), message).Result()
if err != nil {
return err
}
// 设置消息的过期时间,例如24小时
err = client.Expire(fmt.Sprintf("user_messages:%s", userID), 24*time.Hour).Err()
if err != nil {
return err
}
return nil
}
3.读取信息从Redis
// 获取站内信到Redis
func GetMessageFormRedis(client *redis.Client, userID string) ([]string, error) {
result, err := client.LRange(fmt.Sprintf("user_messages:%s", userID), 0, -1).Result()
if err != nil {
return nil, err
}
return result, nil
}
4. 运行文件main.go
func main() {
client := RedisConfigInit()
err := InsertMessageToRedis(client, "user123", "你有一条新的站内信")
if err != nil {
log.Fatal(err)
return
}
formRedis, err := GetMessageFormRedis(client, "user123")
if err != nil {
return
}
for _, redi := range formRedis {
fmt.Println(redi)
}
}