zoukankan      html  css  js  c++  java
  • 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就介绍到这了。下面会具体讲讲源码实现。

  • 相关阅读:
    Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
    Python3 运算符
    Python3 注释
    Python3 解释器
    Python3 环境搭建
    Python 3 教程
    Python3 基本数据类型
    趣闻|Python之禅(The Zen of Python)
    ios开发笔记根据传入字符串的长度动态生成label,并按照屏幕宽度排列
    iOS开发设置tableview的分割线
  • 原文地址:https://www.cnblogs.com/huwf/p/4273349.html
Copyright © 2011-2022 走看看