提交 be7326d7 编写于 作者: 武汉红喜's avatar 武汉红喜

RedisTemplate新增方法execute(RedisCallback),重命名一些方法

上级 a8b88006
package org.hongxi.whatsmars.redis.client;
import redis.clients.jedis.ShardedJedis;
/**
* Created by shenhongxi on 2018/12/30.
*/
public interface RedisCallback<T> {
T doInRedis(ShardedJedis jedis);
}
......@@ -14,6 +14,15 @@ public class RedisTemplate {
private ShardedJedisPool shardedJedisPool;
public <T> T execute(RedisCallback<T> action) {
ShardedJedis jedis = fetchJedis();
try {
return action.doInRedis(jedis);
} finally {
release(jedis);
}
}
public void set(String key, String value) {
ShardedJedis jedis = fetchJedis();
try {
......@@ -128,7 +137,7 @@ public class RedisTemplate {
}
}
public long addSet(String key, String... values) {
public long sadd(String key, String... values) {
ShardedJedis jedis = fetchJedis();
try {
return jedis.sadd(key, values);
......@@ -137,7 +146,7 @@ public class RedisTemplate {
}
}
public Set<String> getSet(String key) {
public Set<String> smembers(String key) {
ShardedJedis jedis = fetchJedis();
try {
return jedis.smembers(key);
......
......@@ -38,9 +38,11 @@ public interface RedisStringService {
Boolean getBit(String key, long offset);
long addSet(String key, String... values);
long sadd(String key, String... values);
Set<String> getSet(String key);
Set<String> smembers(String key);
void pubMsg(String channel, Object obj);
void convertAndSend(String channel, Object obj);
void delete(String key);
}
......@@ -92,20 +92,25 @@ public class RedisStringServiceImpl implements RedisStringService {
}
@Override
public long addSet(String key, String... values) {
public long sadd(String key, String... values) {
return stringRedisTemplate.opsForSet().add(key, values);
}
@Override
public Set<String> getSet(String key) {
public Set<String> smembers(String key) {
return stringRedisTemplate.opsForSet().members(key);
}
@Override
public void pubMsg(String channel, Object obj) {
public void convertAndSend(String channel, Object obj) {
assert obj != null;
String msg = obj instanceof String ? String.valueOf(obj) : JSON.toJSONString(obj);
stringRedisTemplate.convertAndSend(channel, msg);
}
@Override
public void delete(String key) {
stringRedisTemplate.delete(key);
}
}
......@@ -9,6 +9,8 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import redis.clients.jedis.*;
import java.util.Set;
/**
* Created by javahongxi on 2017/6/23.
*/
......@@ -105,4 +107,17 @@ public class Demo {
redisTemplate.set(key, "hongxi.org");
assert "hongxi.org".equals(redisTemplate.get(key));
}
@Test
public void testCallback() {
String key = "countries";
redisTemplate.sadd(key, "China", "America", "Japan");
Long result = redisTemplate.execute(new RedisCallback<Long>() {
@Override
public Long doInRedis(ShardedJedis jedis) {
return jedis.scard(key);
}
});
assert 3 == result;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册