• OpenFire源码学习之十九:在openfire中使用redis插件(上)


    Redis插件

    介绍

    Redis是目前比较流行的NO-SQL,基于K,V的数据库系统。关于它的相关操作信息,本人这里就不做重复了,相关资料可以看这个网站http://www.redis.io/(官网)、http://www.redis.cn/(中文站)。

    这里本人想说的是,拿Redis做openfire的缓存数据库。能够大大的提高openfire连接的吞吐量。Openfire自身在本地使用Map、Cache的方式缓存了Group、roster、MUC等信息。但是当系统用户过大的时候,需要缓存的数据更多了。那么JVM的对上百G的缓存控制貌似不是很好。当然一般情况下也不会那么大。而且在openfire集群的模式,读取其他节点的消息(比如用户session)需要夸节点甚至夸机房。这样也会影响访问速度。更多情况下,单独的传统数据库对大数据的并发并不理想。还有比较重要的因素就是,当多个系统同时使用的时候,比较门户网站上的用户登陆与APP上的用户登陆就会造成很大的麻烦,大多情况下,两者系统的数据库表设计本身就不一致,查询起来就不叫麻烦,那么把多个系统需要用到的数据都以同一种数据格式缓存的话,会省去很多的麻烦!

    废话不多说,直接上插件吧。

    Redis插件

    首先看我的控制台配置页面:


    这里本人将openfire需要的缓存做了8个大类。每一类设置成了一个数据库。下面简单的描述下这几个大类。

    分类

    描述

    REDIS_USER

    用户库,缓存用户的相关信息(认证资料、用户名片、用户搜索分词表)根据用户量的大小,可以根据不用的业务场景来分

    REDIS_GROUP

    Group的相关信息,包括Group与用户的关系。当然本人使用的业务场景group的数据量可能非常的大

    REDIS_ROSTER

    用户花名册,存储用户好友关系。包括用户添加好友发送等待的数据

    REDIS_MUC

    聊天室相关信息包括聊天室用户关系、角色类

    REDIS_MUC_MESSAGE

    聊天室产生的会话消息。该消息需要保存最近聊天50~200条消息。根据需求不同,这个设置也不同。

    REDIS_OFFLINE_MESSAGE

    离线消息,这里是指。用户不在线的时候,不同终端好友或者是其他系统的会话消息保存。个人把这个离线存储为时间周期为单位,比如只保存一个月。

    REDIS_CHAT_MESSAGE

    这个就是简单的聊天的会话消息。为什么需要存储普通聊天的呢。本人这里是考虑到需要多消息回执,而存储的。这个库存读写量会非常的平凡,所以打算单独拿出来

    REDIS_SEARCH

    用户搜索,本人在这里只是把用户名称分词存储了。终端用户可以搜索关键词搜索用户。

    插件流程

    1、需要配置Redis插件的信息(ip、端口、连接密码等)。这里本人配置到了关系数据库。如图:

    redisConfiguration


    2、Redis的安装。

    关于Redis的安装或者调优无论是windows环境还是Linux环境在Redis官网作了非常详细的介绍,这里本人就不贴图啰嗦了。

    3、添加你需要修改的DAO操作

    如:在系统属性表中修改

    provider.auth.className

    org.jivesoftware.util.redis.expand.RedisAuthProvider

    4、预初始化数据。


    这里的预初始化数据,是将系统启动后,由控制台管理员才设置。预初始化的目的是要在原有系统上加载用户。

    关于上面接个步骤,Redis就介绍到这了。下面会具体讲讲源码实现。

  • 相关阅读:
    中国科学院大学数字集成电路作业开源——组合逻辑章节
    中国科学院大学数字集成电路作业开源——时序逻辑与存储器章节
    模拟集成电路实践记录_共源极差分放大器
    中国科学院大学数字集成电路作业开源——64位FFT/IFFT数字逻辑运算电路的Verilog实现
    中国科学院大学数字集成电路作业开源——函数运算器章节
    中国科学院大学数字集成电路作业开源——算数逻辑章节
    【20220306】连岳摘抄
    【20220311】连岳摘抄
    【20220304】连岳摘抄
    【20220312】连岳摘抄
  • 原文地址:https://www.cnblogs.com/huwf/p/4273349.html
Copyright © 2020-2023  润新知