7.MVC大项目第七天(在线聊天)
将model实体数据储存进内存中,聊天消息应该使用队列 Redis中有队列 进行分布式服务器
Redis队列的特点: 将消息持久化硬盘 当redis服务重新启动后自动将数据恢复 ,并且如果redis中的数据出列后那么会自动销毁
Redis的队列结构 一起聊天的人的key是不同的 value是一个集合,一个key对应的value是一个集合
使用redis队列储存数据不使用集合储存数据的原因: 如果我们使用集合储存数据那么我们到时需要手动销毁,如果我们使用redis的话当用户取出对应的数据时会自动销毁,如果用户没有取出那么会将消息持久化硬盘,当redis重新启动时会自动将数据恢复
设置线程锁的原因: Redis是单线程的 线程不安全 使用线程锁解决问题 并且注意使用线程锁必须对象是相同的 所以我们需要使用单例类 来解决问题
设置单例类的原因: 单例类负责 存数据和取数据 保证多线程的安全
注意:
在wcf中调用单例类中的两个方法
在单例类中获取redis或则设置redis的方法