在TitanFramework中使用集成Redis

在Titan中,不仅可以使用各数据库提供的原生连接池去操作数据库,框架也已经良好的集成了Mysql,Redis,MongoDB等数据库,并且最让人惊喜的是,无需配置任何多余的框架配置,框架就可以进行读取原生数据库配置并使用,这里就给大家简单介绍一下框架集成后对于Redis来说如何去使用。

1.Titan Framework redis配置

我们需要在配置文件下进行如下配置,和原生的配置参数是一样的:

#最大分配的对象数  
jedisPool.maxActive=20  
#最大能够保持idel状态的对象数  
jedisPool.maxIdle=20  
#最小能够保持idel状态的对象数  
jedisPool.minIdle=10  
#当池内没有返回对象时,最大等待时间  
jedisPool.maxWait=-1  
#当调用borrow Object方法时,是否进行有效性检查  
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
jedisPool.testOnBorrow=true  
#在return给pool时,是否提前进行validate操作
jedisPool.testOnReturn =false
#当“连接池”中active数量达到阀值时,即“链接”资源耗尽时,连接池需要采取的手段, 默认为1:
#0 : 抛出异常
#1 : 阻塞,直到有可用链接资源
#2 : 强制创建新的链接资源
jedisPool.whenExhaustedAction=1
#表示idle object evitor两次扫描之间要sleep的毫秒数;
jedisPool.timeBetweenEvictionRunsMillis = 100000

#如果为true,表示有一个idle object evitor线程对idle object进行扫描,如果validate失败,此object会被从pool中drop掉;
#这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义;
jedisPool.testWhileIdle=true
#表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;
#这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义
jedisPool.minEvictableIdleTimeMillis=300000
#在minEvictableIdleTimeMillis基础上,加入了至少minIdle个对象已经在pool里面了。
#如果为-1,evicted不会根据idle time驱逐任何对象。如果minEvictableIdleTimeMillis>0,则此项设置无意义,
#且只有在timeBetweenEvictionRunsMillis大于0时才有意义
jedisPool.softMinEvictableIdleTimeMillis = -1
#表示idle object evitor每次扫描的最多的对象数
jedisPool.numTestsPerEvictionRun = 50  
#borrowObject返回对象时,是采用DEFAULT_LIFO(last in first out,即类似cache的最频繁使用队列),如果为False,则表示FIFO队列
jedisPool.lifo = true
#IP  
jedisPool.shard1.host=127.0.0.1
#Port  
jedisPool.shard1.port=6379
#password
#redis.password=
jedisPool.shard1.password=test
#客户端超时时间单位是毫秒
redis.timeout=100000
#name
redis.name=queue
#database
redis.database=2

下面是Spring的XML配置文件,只需要使用Spring的扫描器加载配置文件即可,这和原生的配置也是一样的。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
   <context:annotation-config />
   <context:component-scan base-package="org.titan.framework org.titan.demo" />

   <bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations">
         <list>
            <value>file:**/conf/redis.properties</value>
         </list>
      </property>
      <property name="ignoreUnresolvablePlaceholders" value="true" />
   </bean>
   <import resource="application-redis-context.xml" />
</beans>

2.Titan Framework redis的简单使用

我们知道redis里总共提供4种数据结构,分别是String、Hash、Set、List、而Set又分为Set和zset,在Titan Framework集成操作这些数据结构的方法,对于Set而言,则只提供了zset这一种数据结构,不过我们仍然可以将它作为Set使用。

在使用Titan Framework中,我们需要实现StorageDataProcessor.Redis以获取接口中已经实现的manager方法进行数据操作。

public class RedisDemo implements StorageDataProcessor.Redis {
   public void doDemo() {
      //String,常用的字符串类型
      manager().cache.save("2","world");
      String s = manager().cache.get("2");
      System.out.println(s);
      manager().cache.save("1","abc");
      //Hash,通过第二个参数field进行分割,适合存储对象,每一个field代表了对象的属性名,而
      manager().table.save("123456","123","12345678945613247");
      manager().table.save("123456","456","asdfghjkl");
      String string1 = manager().table.load("123456","123");
      String string2 = manager().table.load("123456","456");
      System.out.println(string1+"<============>"+string2);
      //zset,有序集合,每个元素都会关联一个double类型的分数,通过这个分数来从小到大排序
      manager().index.add("111222",0,"abc");
      manager().index.add("111222",0,"def");
      Set<String> set = manager().index.all("111222");
      for (String sss : set) {
         System.out.println(sss);
      }
      //List,常用的有队列操作,时间线等操作
      manager().queue.push("aaa","bbb");
      String aaa = manager().queue.pop("aaa");
      System.out.println(aaa);
   }
}

控制台打印结果为:

World

12345678945613247<============> asdfghjkl

abc

def

Bbb

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值