Jedis操作单节点redis,集群及redisTemplate操作redis集群(一)
1,该文章主要介绍如何使用Jedis操作单节点redis数据,后续两篇文章将介绍Jedis操作redis集群及redisTemplate操作redis集群;码云上面地址:https://gitee.com/dream21th/dream21th-redis
2,项目的pom文件如下:
<?xml version=”1.0” encoding=”UTF-8”?> <project xmlns=”http://maven.apache.org/POM/4.0.0“ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“ xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.dream21th</groupId> <artifactId>dream21th-redis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dream21th-redis</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.13.RELEASE</version> <relativePath/> <!— lookup parent from repository —> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.41</version> </dependency> <!— Swagger2 配置 —> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> |
3,项目的application.properties配置
#redis redis.host=192.168.1.81 redis.port=6379 redis.timeout=3 #redis.password=123456 redis.poolMaxTotal=10 redis.poolMaxIdle=10 redis.poolMaxWait=3 |
4,项目的config配置
@Service public class RedisPoolFactory extends CachingConfigurerSupport{ @Autowired RedisConfig redisConfig; /* redis单例模式 @return / @Bean public JedisPool JedisPoolFactory() { JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxIdle(redisConfig.getPoolMaxIdle()); poolConfig.setMaxTotal(redisConfig.getPoolMaxTotal()); poolConfig.setMaxWaitMillis(redisConfig.getPoolMaxWait() 1000); JedisPool jp = new JedisPool(poolConfig, redisConfig.getHost(), redisConfig.getPort(), redisConfig.getTimeout()1000, redisConfig.getPassword(), 0); return jp; } } |
5,项目主要的方法
package com.dream21th.dream21thredis.redis; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.dream21th.dream21thredis.key.KeyPrefix; import com.dream21th.dream21thredis.util.ObjectUtils; import com.dream21th.dream21thredis.util.StringUtils; import lombok.extern.slf4j.Slf4j; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.exceptions.JedisException; / 单机方式redis连接客户端 @author dream21th */ @Slf4j @Service(“jedisClient”) public class JedisClient implements IJedisClient { @Autowired private JedisPool jedisPool; / 获取对象值 / public <T> T get(KeyPrefix prefix, String key, Class<T> clazz) { Jedis jedis = null; try { jedis = jedisPool.getResource(); //key String realKey = prefix.getPrefix() + key; String str = jedis.get(realKey); T t = ObjectUtils.stringToBean(str, clazz); return t; }finally { returnResource(jedis); } } /** 给对象设定值 / public <T> boolean set(KeyPrefix prefix, String key, T value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); String str =ObjectUtils.beanToString(value); if(str == null || str.length() <= 0) { return false; } //key String realKey = prefix.getPrefix() + key; int seconds = prefix.expireSeconds(); if(seconds <= 0) { jedis.set(realKey, str); }else { jedis.setex(realKey, seconds, str); } return true; }finally { returnResource(jedis); } } @Override public <T> T getT(String key) { T value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { value = toT(jedis.get(getBytesKey(key))); log.debug(“getObject {} = {}”, key, value); } } catch (Exception e) { log.warn(“getObject {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } @Override public <T> String setT(String key, T value, int cacheSeconds) { String result = null; Jedis jedis = null; try { jedis = getResource(); result = jedis.set(getBytesKey(key), toBytes(value)); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setObject {} = {}”, key, value); } catch (Exception e) { log.warn(“setObject {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } / 判断键值是否存在 */ public <T> boolean exists(KeyPrefix prefix, String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); //key String realKey = prefix.getPrefix() + key; return jedis.exists(realKey); }finally { returnResource(jedis); } } / 增加一个值 / public <T> Long incr(KeyPrefix prefix, String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); //key String realKey = prefix.getPrefix() + key; return jedis.incr(realKey); }finally { returnResource(jedis); } } /** 减少一个值 / public <T> Long decr(KeyPrefix prefix, String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); //key String realKey = prefix.getPrefix() + key; return jedis.decr(realKey); }finally { returnResource(jedis); } } / 获取缓存 @param key 键 @return 值 / public String get(String key) { String value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { value = jedis.get(key); value = StringUtils.isNotBlank(value) && !”nil”.equalsIgnoreCase(value) ? value : null; log.debug(“get {} = {}”, key, value); } } catch (Exception e) { log.warn(“get {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } / 获取缓存 @param key 键 @return 值 / public Object getObject(String key) { Object value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { value = toObject(jedis.get(getBytesKey(key))); log.debug(“getObject {} = {}”, key, value); } } catch (Exception e) { log.warn(“getObject {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } / 设置缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public String set(String key, String value, int cacheSeconds) { String result = null; Jedis jedis = null; try { jedis = getResource(); result = jedis.set(key, value); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“set {} = {}”, key, value); } catch (Exception e) { log.warn(“set {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } / 设置缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public String setObject(String key, Object value, int cacheSeconds) { String result = null; Jedis jedis = null; try { jedis = getResource(); result = jedis.set(getBytesKey(key), toBytes(value)); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setObject {} = {}”, key, value); } catch (Exception e) { log.warn(“setObject {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } / 获取List缓存 @param key 键 @return 值 / public List<String> getList(String key) { List<String> value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { value = jedis.lrange(key, 0, -1); log.debug(“getList {} = {}”, key, value); } } catch (Exception e) { log.warn(“getList {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } / 获取List缓存 @param key 键 @return 值 / public List<Object> getObjectList(String key) { List<Object> value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { List<byte[]> list = jedis.lrange(getBytesKey(key), 0, -1); value = new ArrayList<Object>(); for (byte[] bs : list) { value.add(toObject(bs)); } log.debug(“getObjectList {} = {}”, key, value); } } catch (Exception e) { log.warn(“getObjectList {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } / 设置List缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public long setList(String key, List<String> value, int cacheSeconds) { long result = 0; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { jedis.del(key); } / 采用集合的toArray()方法直接把List集合转换成数组,这里需要注意,不能这样写: String[] array = (String[]) mlist.toArray(); 这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误,这是为何呢,这样写看起来没有问题啊 因为java中的强制类型转换是针对单个对象才有效果的,而List是多对象的集合,所以将整个List强制转换是不行的 正确的写法应该是这样的 / result = jedis.rpush(key, value.toArray(new String[0])); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setList {} = {}”, key, value); } catch (Exception e) { log.warn(“setList {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 设置List缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public long setObjectList(String key, List<Object> value, int cacheSeconds) { long result = 0; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { jedis.del(key); } List<byte[]> list = new ArrayList<byte[]>(); for (Object o : value) { list.add(toBytes(o)); } /byte[][] bytes=new byte[list.size()][]; for(int i=0;i<list.size();i++) { bytes[i]=list.get(i); }/ result = jedis.rpush(getBytesKey(key),list.toArray(new byte[0][])); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setObjectList {} = {}”, key, value); } catch (Exception e) { log.warn(“setObjectList {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 向List缓存中添加值 @param key 键 @param value 值 @return / public long listAdd(String key, String… value) { long result = 0; Jedis jedis = null; try { jedis = getResource(); result = jedis.rpush(key, value); log.debug(“listAdd {} = {}”, key, value); } catch (Exception e) { log.warn(“listAdd {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 向List缓存中添加值 @param key 键 @param value 值 @return / public long listObjectAdd(String key, Object… value) { long result = 0; Jedis jedis = null; try { jedis = getResource(); List<byte[]> list = new ArrayList<byte[]>(); for (Object o : value) { list.add(toBytes(o)); } result = jedis.rpush(getBytesKey(key), list.toArray(new byte[0][])); log.debug(“listObjectAdd {} = {}”, key, value); } catch (Exception e) { log.warn(“listObjectAdd {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 获取缓存 @param key 键 @return 值 / public Set<String> getSet(String key) { Set<String> value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { value = jedis.smembers(key); log.debug(“getSet {} = {}”, key, value); } } catch (Exception e) { log.warn(“getSet {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } /** 获取缓存 @param key 键 @return 值 / public Set<Object> getObjectSet(String key) { Set<Object> value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { value = new HashSet<Object>(); Set<byte[]> set = jedis.smembers(getBytesKey(key)); for (byte[] bs : set) { value.add(toObject(bs)); } log.debug(“getObjectSet {} = {}”, key, value); } } catch (Exception e) { log.warn(“getObjectSet {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } /** 设置Set缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public long setSet(String key, Set<String> value, int cacheSeconds) { long result = 0; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { jedis.del(key); } result = jedis.sadd(key, (String[]) value.toArray()); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setSet {} = {}”, key, value); } catch (Exception e) { log.warn(“setSet {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 设置Set缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public long setObjectSet(String key, Set<Object> value, int cacheSeconds) { long result = 0; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { jedis.del(key); } Set<byte[]> set = new HashSet<byte[]>(); for (Object o : value) { set.add(toBytes(o)); } result = jedis.sadd(getBytesKey(key), (byte[][]) set.toArray()); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setObjectSet {} = {}”, key, value); } catch (Exception e) { log.warn(“setObjectSet {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 向Set缓存中添加值 @param key 键 @param value 值 @return / public long setSetAdd(String key, String… value) { long result = 0; Jedis jedis = null; try { jedis = getResource(); result = jedis.sadd(key, value); log.debug(“setSetAdd {} = {}”, key, value); } catch (Exception e) { log.warn(“setSetAdd {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 向Set缓存中添加值 @param key 键 @param value 值 @return / public long setSetObjectAdd(String key, Object… value) { long result = 0; Jedis jedis = null; try { jedis = getResource(); Set<byte[]> set = new HashSet<byte[]>(); for (Object o : value) { set.add(toBytes(o)); } result = jedis.rpush(getBytesKey(key), set.toArray(new byte[0][])); log.debug(“setSetObjectAdd {} = {}”, key, value); } catch (Exception e) { log.warn(“setSetObjectAdd {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 获取Map缓存 @param key 键 @return 值 / public Map<String, String> getMap(String key) { Map<String, String> value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { value = jedis.hgetAll(key); log.debug(“getMap {} = {}”, key, value); } } catch (Exception e) { log.warn(“getMap {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } /** 获取Map缓存 @param key 键 @return 值 / public Map<String, Object> getObjectMap(String key) { Map<String, Object> value = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { value = new HashMap<String, Object>(); Map<byte[], byte[]> map = jedis.hgetAll(getBytesKey(key)); for (Map.Entry<byte[], byte[]> e : map.entrySet()) { value.put(StringUtils.toString(e.getKey()), toObject(e.getValue())); } log.debug(“getObjectMap {} = {}”, key, value); } } catch (Exception e) { log.warn(“getObjectMap {} = {}”, key, value, e); } finally { returnResource(jedis); } return value; } /** 设置Map缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public String setMap(String key, Map<String, String> value, int cacheSeconds) { String result = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { jedis.del(key); } result = jedis.hmset(key, value); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setMap {} = {}”, key, value); } catch (Exception e) { log.warn(“setMap {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 设置Map缓存 @param key 键 @param value 值 @param cacheSeconds 超时时间,0为不超时 @return / public String setObjectMap(String key, Map<String, Object> value, int cacheSeconds) { String result = null; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { jedis.del(key); } Map<byte[], byte[]> map = new HashMap<byte[], byte[]>(); for (Map.Entry<String, Object> e : value.entrySet()) { map.put(getBytesKey(e.getKey()), toBytes(e.getValue())); } result = jedis.hmset(getBytesKey(key), (Map<byte[], byte[]>) map); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } log.debug(“setObjectMap {} = {}”, key, value); } catch (Exception e) { log.warn(“setObjectMap {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 向Map缓存中添加值 @param key 键 @param value 值 @return / public String mapPut(String key, Map<String, String> value) { String result = null; Jedis jedis = null; try { jedis = getResource(); result = jedis.hmset(key, value); log.debug(“mapPut {} = {}”, key, value); } catch (Exception e) { log.warn(“mapPut {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 向Map缓存中添加值 @param key 键 @param value 值 @return / public String mapObjectPut(String key, Map<String, Object> value) { String result = null; Jedis jedis = null; try { jedis = getResource(); Map<byte[], byte[]> map = new HashMap<byte[], byte[]>(); for (Map.Entry<String, Object> e : value.entrySet()) { map.put(getBytesKey(e.getKey()), toBytes(e.getValue())); } result = jedis.hmset(getBytesKey(key), (Map<byte[], byte[]>) map); log.debug(“mapObjectPut {} = {}”, key, value); } catch (Exception e) { log.warn(“mapObjectPut {} = {}”, key, value, e); } finally { returnResource(jedis); } return result; } /** 移除Map缓存中的值 @param key 键 @param value 值 @return / public long mapRemove(String key, String mapKey) { long result = 0; Jedis jedis = null; try { jedis = getResource(); result = jedis.hdel(key, mapKey); log.debug(“mapRemove {} {}”, key, mapKey); } catch (Exception e) { log.warn(“mapRemove {} {}”, key, mapKey, e); } finally { returnResource(jedis); } return result; } /** 移除Map缓存中的值 @param key 键 @param value 值 @return / public long mapObjectRemove(String key, String mapKey) { long result = 0; Jedis jedis = null; try { jedis = getResource(); result = jedis.hdel(getBytesKey(key), getBytesKey(mapKey)); log.debug(“mapObjectRemove {} {}”, key, mapKey); } catch (Exception e) { log.warn(“mapObjectRemove {} {}”, key, mapKey, e); } finally { returnResource(jedis); } return result; } /** 判断Map缓存中的Key是否存在 @param key 键 @param value 值 @return / public boolean mapExists(String key, String mapKey) { boolean result = false; Jedis jedis = null; try { jedis = getResource(); result = jedis.hexists(key, mapKey); log.debug(“mapExists {} {}”, key, mapKey); } catch (Exception e) { log.warn(“mapExists {} {}”, key, mapKey, e); } finally { returnResource(jedis); } return result; } /** 判断Map缓存中的Key是否存在 @param key 键 @param value 值 @return / public boolean mapObjectExists(String key, String mapKey) { boolean result = false; Jedis jedis = null; try { jedis = getResource(); result = jedis.hexists(getBytesKey(key), getBytesKey(mapKey)); log.debug(“mapObjectExists {} {}”, key, mapKey); } catch (Exception e) { log.warn(“mapObjectExists {} {}”, key, mapKey, e); } finally { returnResource(jedis); } return result; } /** 删除缓存 @param key 键 @return / public long del(String key) { long result = 0; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(key)) { result = jedis.del(key); log.debug(“del {}”, key); } else { log.debug(“del {} not exists”, key); } } catch (Exception e) { log.warn(“del {}”, key, e); } finally { returnResource(jedis); } return result; } /** 删除缓存 @param key 键 @return / public long delObject(String key) { long result = 0; Jedis jedis = null; try { jedis = getResource(); if (jedis.exists(getBytesKey(key))) { result = jedis.del(getBytesKey(key)); log.debug(“delObject {}”, key); } else { log.debug(“delObject {} not exists”, key); } } catch (Exception e) { log.warn(“delObject {}”, key, e); } finally { returnResource(jedis); } return result; } /** 缓存是否存在 @param key 键 @return / public boolean exists(String key) { boolean result = false; Jedis jedis = null; try { jedis = getResource(); result = jedis.exists(key); log.debug(“exists {}”, key); } catch (Exception e) { log.warn(“exists {}”, key, e); } finally { returnResource(jedis); } return result; } /** 缓存是否存在 @param key 键 @return / public boolean existsObject(String key) { boolean result = false; Jedis jedis = null; try { jedis = getResource(); result = jedis.exists(getBytesKey(key)); log.debug(“existsObject {}”, key); } catch (Exception e) { log.warn(“existsObject {}”, key, e); } finally { returnResource(jedis); } return result; } /** 获取资源 @return @throws JedisException / public Jedis getResource() throws JedisException { Jedis jedis = null; try { jedis = jedisPool.getResource(); // log.debug(“getResource.”, jedis); } catch (JedisException e) { log.warn(“getResource.”, e); returnBrokenResource(jedis); throw e; } return jedis; } / 归还资源 @param jedis @param isBroken */ public void returnBrokenResource(Jedis jedis) { if (jedis != null) { // jedisPool.returnBrokenResource(jedis); jedis.close(); } } / 释放资源 @param jedis @param isBroken / public void returnResource(Jedis jedis) { if (jedis != null) { // jedisPool.returnResource(jedis); jedis.close(); } } /** 获取byte[]类型Key @param key @return / public static byte[] getBytesKey(Object object) { if (object instanceof String) { return StringUtils.getBytes((String) object); } else { return ObjectUtils.serialize(object); } } / Object转换byte[]类型 @param key @return */ public static byte[] toBytes(Object object) { return ObjectUtils.serialize(object); } / byte[]型转换Object @param key @return / public static Object toObject(byte[] bytes) { return ObjectUtils.unserialize(bytes); } /** byte[]型转换T @param key @return / public static <T> T toT(byte[] bytes) { return ObjectUtils.unserializeT(bytes); } } |
6,controller测试
package com.dream21th.dream21thredis.controller; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.dream21th.dream21thredis.dto.Person; import com.dream21th.dream21thredis.dto.Student; import com.dream21th.dream21thredis.key.UserKey; import com.dream21th.dream21thredis.redis.IJedisClient; import com.dream21th.dream21thredis.result.Result; import com.dream21th.dream21thredis.service.RedisService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @Slf4j @RestController @RequestMapping(“/singleNode”) @Api(tags=”单节点redis操作”) public class RedisSingleNodeController { @Autowired private IJedisClient jedisClient; @Autowired private RedisService redisService; @PostMapping(“/mapTest/{key}”) @ApiOperation(value = “map测试”, notes = “map测试”) public Result<Map<String,String>> mapTest(@PathVariable(“key”) String key,@RequestBody Map<String,String> map){ jedisClient.setMap(key, map,0); return Result.success(jedisClient.getMap(key)); } @PostMapping(“/listTest/{key}”) public Result<List<String>> ListTest(@PathVariable(“key”) String key,@RequestBody List<String> list){ jedisClient.setList(key, list, 0); return Result.success(jedisClient.getList(key)); } @PostMapping(“/listTestObj/{key}”) public Result<List<Object>> listTestObj(@PathVariable(“key”) String key,@RequestBody List<Object> list){ jedisClient.setObjectList(key, list, 0); return Result.success(jedisClient.getObjectList(key)); } @PostMapping(“/listTestT”) public Result<Student> listTestT(@RequestBody Student t){ jedisClient.set(UserKey.getById, “name”,t); log.info(“键值是否存在:{}”,jedisClient.exists(UserKey.getById, “name”)); redisService.getResult(); return Result.success(jedisClient.get(UserKey.getById, “name”,Student.class)); } @PostMapping(“/decIcrTest”) public Result<Long> decIcrTest(long num){ jedisClient.set(UserKey.getById, “count”,num); log.info(“键值是否存在:{}”,jedisClient.exists(UserKey.getById, “count”)); log.info(“加1后值:{}”,jedisClient.incr(UserKey.getById, “count”)); log.info(“减1后值:{}”,jedisClient.decr(UserKey.getById, “count”)); return Result.success(jedisClient.get(UserKey.getById, “count”,Long.class)); } @PostMapping(“/testObj”) public Result<Student> testObj(@RequestBody Student t){ jedisClient.setObject(“student”, t, 0); return Result.success((Student)jedisClient.getObject(“student”)); } @PostMapping(“/testT”) public Result<Student> testT(@RequestBody Student t){ jedisClient.setObject(“student”, t, 0); return Result.success(jedisClient.getT(“student”)); } @PostMapping(“/testT1”) public Result<Person> testT1(@RequestBody Person t){ jedisClient.setT(“person”, t, 0); return Result.success(jedisClient.getT(“person”)); } @PostMapping(“/testList”) public Result<List<Student>> testList(@RequestBody Student t){ return Result.success(redisService.getList()); } @PostMapping(“/mapTestT”) @ApiOperation(value = “传入对象,以map获取值”, notes = “传入对象,以map获取值”) public Result<Map> mapTestT(@RequestBody Student t){ jedisClient.set(UserKey.getById, “map”,t); log.info(“键值是否存在:{}”,jedisClient.exists(UserKey.getById, “map”)); redisService.getResult(); return Result.success(jedisClient.get(UserKey.getById, “map”,Map.class)); } } |
还没有评论,来说两句吧...