Java redis操作api之redisson

Redisson 是一个Java操作redis的api,封装的很不错,相比很多的redis   api他具有很多优势,比如面向对象的写法,比如redis基础功能上封装的各种锁,比如通道技术等等,让你能更好的更容易的使用redis。虽然目前也有一些问题存在,但是基本不影响使用


官网地址:https://redisson.org/

git:   https://github.com/redisson/redisson (上面有wiki和各种问题的解答,反馈速度还不错)


要想使用redisson很简单,只需要简单的配置即可,目前我们使用的是从json文件读取配置的方式:

${XXX} 中为实际使用的参数值

哨兵模式:

{
  "sentinelServersConfig":{
    "idleConnectionTimeout":10000,
    "pingTimeout":1000,
    "connectTimeout":10000,
    "timeout":5000,
    "retryAttempts":3,
    "retryInterval":1500,
    "reconnectionTimeout":3000,
    "failedAttempts":3,
    "password":"${redis.password}",
    "subscriptionsPerConnection":5,
    "clientName":"redis-client",
    "loadBalancer":{
      "class":"org.redisson.connection.balancer.RoundRobinLoadBalancer"
    },
    "slaveSubscriptionConnectionMinimumIdleSize":1,
    "slaveSubscriptionConnectionPoolSize":50,
    "slaveConnectionMinimumIdleSize":5,
    "slaveConnectionPoolSize":250,
    "masterConnectionMinimumIdleSize":5,
    "masterConnectionPoolSize":250,
    "readMode":"MASTER",
    "sentinelAddresses":[
      "//${redis.address.1}",
      "//${redis.address.2}",
      "//${redis.address.3}"
    ],
    "masterName":"${redis.masterName}",
    "database":0
  },
  "codec":null,
  "useLinuxNativeEpoll":false
}

集群模式:

{
  "clusterServersConfig":{
    "idleConnectionTimeout":10000,
    "pingTimeout":1000,
    "connectTimeout":10000,
    "timeout":5000,
    "retryAttempts":3,
    "retryInterval":1500,
    "reconnectionTimeout":3000,
    "failedAttempts":3,
    "password":null,
    "subscriptionsPerConnection":5,
    "clientName":"reliance-redis-client",
    "loadBalancer":{
      "class":"org.redisson.connection.balancer.RoundRobinLoadBalancer"
    },
    "slaveSubscriptionConnectionMinimumIdleSize":1,
    "slaveSubscriptionConnectionPoolSize":50,
    "slaveConnectionMinimumIdleSize":5,
    "slaveConnectionPoolSize":250,
    "masterConnectionMinimumIdleSize":5,
    "masterConnectionPoolSize":250,
    "readMode":"SLAVE",
    "nodeAddresses":[
      "//${reliance.redis.address.1}",
      "//${reliance.redis.address.2}",
      "//${reliance.redis.address.3}",
      "//${reliance.redis.address.5}",
      "//${reliance.redis.address.4}",
      "//${reliance.redis.address.6}"
    ],
    "scanInterval":1000
  },
  "threads":0,
  "nettyThreads": 0,
  "codec":null,
  "useLinuxNativeEpoll":false
}

然后是spring中配置bean就可以了

<bean id="redisConfig" class="org.redisson.config.Config" factory-method="fromJSON">
   <constructor-arg type="java.io.File" value="classpath:redis/redis.json"/>
</bean>
<bean id="redisson" class="org.redisson.Redisson" factory-method="create">
   <constructor-arg name="config" ref="redisConfig"/>
</bean>
上面的配置所指向的文件是你上面的json配置


之后就可以使用注解使用了


@Resource

private Redisson redisson;



他所支持的操作有:bucket(对象操作), list, map, sortedSet, atomicLong以及各种biteStream 等等

下面实际举个栗子:

bucket实际上面是String的封装,底层使用json来存储对象

RBucket<SomeClass> bucket = redisson.getBucket("key"); // 获取对象
bucket.set(new SomeClass()); // 设置一个对象到redis中
SomeClass someClass = bucket.get(); //从redis中获得对象

还支持各种 过期以及异步操作等,功能挺强大


锁操作:

RLock lock = redisson.getLock("key");// 获取对象
boolean isGetLock = lock.tryLock(11, 11, TimeUnit.SECONDS); // 等待一定时间,并且会自动过期
boolean isLock = lock.tryLock(); //  只尝试获取一次
lock.unlock(); // 释放锁

还有各种强大的功能可以查看api

https://github.com/redisson/redisson/wiki


值得一提的是他和spring cache和spring session 的整合是挺不错的



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值