jfinal集成redis教程

Redis 简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

· Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

· Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

· Redis支持数据的备份,即master-slave模式的数据备份。

 

Redis 优势

· 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

· 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

· 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

· 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。



Redis 安装


一:Window 下安装

下载地址:https://github.com/MSOpenTech/redis/releases。 也可以使用教程提供,版本是一致的。

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 G 盘。

3B8D633F-14CE-42E3-B174-FCCD48B11FF3.jpg

二、安装Redis

1.这里下载的是Redis-x64-3.2.100版本,我的电脑是win7 64位,所以下载64位版本的,在运行中输入cmd,然后把目录指向解压的Redis目录。

1
2
G:
CD Redis-x64-3.2.100




2、启动命令

redis-server redis.windows.conf,出现下图显示表示启动成功了。




三、设置Redis服务

1、由于上面虽然启动了redis,但是只要一关闭cmd窗口,redis就会消失。所以要把redis设置成windows下的服务。

也就是设置到这里,首先发现是没用这个Redis服务的。


image


2、设置服务命令

redis-server --service-install redis.windows-service.conf --loglevel verbose




输入命令之后没有报错,表示成功了,刷新服务,会看到多了一个redis服务。

image




3、常用的redis服务命令。

卸载服务:redis-server --service-uninstall

开启服务:redis-server --service-start

停止服务:redis-server --service-stop



Redis 客户端的基本语法为:

$ redis-cli

执行 PING 命令,该命令用于检测 redis 服务是否启动。


 




jfinal集成rieds

1:添加依赖架包

    jedis-2.9.0.jar  commons-pool2-2.4.2.jar commons-pool-1.5.5.jar    fst-2.50.jar     jackson-core-2.5.3.jar     jackson-annotations-2.4.2.jar     jackson-databind-2.1.1.jar  


2:配置文件配置相关参数  (项目中配置在config-base-dev.txt)

    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
##########redis相关配置#############
#访问地址
redis_host= 127.0 . 0.1
#访问端口
redis_port= 6379
#注意,如果没有password,此处不设置值,但这一项要保留
redis_password=
 
#最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为 0 表示无限制。
redis_maxIdle= 300
#连接池的最大数据库连接数。设为 0 表示无限制
redis_maxTotal= 600
#最大建立连接等待时间。如果超过此时间将接到异常。设为- 1 表示无限制。单位 秒
redis_maxWait= 2
#在borrow一个jedis实例时,是否提前进行alidate操作;如果为 true ,则得到的jedis实例均是可用的;
redis_testOnBorrow= true
#超时时间
redis_timeout= 2



3: JFinalConfig 配置plugin


1
2
3
4
configPlugin(Plugins me) {
     RedisPlugin redis = ESRedisPlugin().config();
     me.add(redis);
}


4:ESRedisPlugin配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public  class  ESRedisPlugin {
     private  String host;
     private  int  port;
     private  int  timeout; // 过期时间 单位 秒
     private  String password;
     private  int  maxTotal;  // 设置最大实例总数
     private  int  maxIdle;  // 空闲数
     private  int  maxWait;  //  等待时间 单位 : 秒
     private  String defualtCacheName =  "redis" ; //默认cacheName
 
     RedisPlugin redisPlugin ;
 
 
     public  RedisPlugin config() {
        try  {
            host = EsPropKit.get( "redis_host" ).trim();
            port =Integer.valueOf(EsPropKit.get( "redis_port" ).trim());
            timeout =Integer.valueOf(EsPropKit.get( "redis_timeout" ).trim());
            password = null !=EsPropKit.get( "redis_password" )?EsPropKit.get( "redis_password" ).trim(): null ;
            maxTotal =Integer.valueOf(EsPropKit.get( "redis_maxTotal" ).trim());
            maxIdle =Integer.valueOf(EsPropKit.get( "redis_maxIdle" ).trim());
            maxWait =Integer.valueOf(EsPropKit.get( "redis_maxWait" ).trim());
 
            if  (StrKit.notBlank(password) ){
                redisPlugin=  new  RedisPlugin(defualtCacheName, host, port, timeout *  1000 , password);
            } else  {
                redisPlugin=  new  RedisPlugin(defualtCacheName, host, port, timeout *  1000 );
            }
 
            redisPlugin.getJedisPoolConfig().setMaxTotal(maxTotal);
            redisPlugin.getJedisPoolConfig().setMaxIdle(maxIdle);
            redisPlugin.getJedisPoolConfig().setMaxWaitMillis(maxWait* 1000 );
            return   redisPlugin;
        } catch  (Exception e){
            //todo
            throw  new  RuntimeException( "init RedisPlugin config exception " ,e);
        }
 
 
     }
}



5:RedisKt工具类使用     

      RedisKt继承了jfinal原生Cache,可直接使用jfinal所提供的所有api,另外可根据业务需求,扩展更多的api供使用。注:原生Cache所有api对数据的操作都采用了二进制字节进行存储。是否扩展使用原生jedis进行操作。

      使用方法:RedisKit.use().set();




6:Cache API使用

    cache api使用方法具体可查看cache 源码 里面各个方法已经有很清楚的中文注释

     Redis 命令参考: http://redisdoc.com/


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JFinal 是一款基于Java语言的,极易上手的web框架。在 JFinal 中,可以通过实现 JFinalConfig 类来进行配置。其中,JFinalConfig 类中定义了一些回调方法,可以帮助我们实现各种功能。 配置回调接口包括: 1. configConstant(Constants constants) 方法用于配置 JFinal 的常量,如视图路径、文件上传路径等。 2. configRoute(Routes routes) 方法用于配置路由,即将请求映射到相应的 Controller 中。 3. configPlugin(Plugins plugins) 方法用于配置插件,如连接池插件、缓存插件等。 4. configInterceptor(Interceptors interceptors) 方法用于配置全局拦截器,如登录验证拦截器、权限验证拦截器等。 5. configHandler(Handlers handlers) 方法用于配置 Handler,主要用于处理全局响应头、请求转发等。 以下是一个 JFinalConfig 配置文件中的示例代码: ``` public class MyConfig extends JFinalConfig { @Override public void configConstant(Constants constants) { constants.setDevMode(true); } @Override public void configRoute(Routes routes) { routes.add("/hello", HelloController.class); } @Override public void configPlugin(Plugins plugins) { DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://localhost:3306/db", "username", "password"); plugins.add(druidPlugin); } @Override public void configInterceptor(Interceptors interceptors) { interceptors.add(new LoginInterceptor()); } @Override public void configHandler(Handlers handlers) { handlers.add(new ContextPathHandler("contextPath")); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值