Redis命令參考java
IDEA下spring+spring mvc+mybatis+mysql+maven框架搭建mysql
在pom.xml文件中添加redis依賴,以下:redis
<!--import redis dependency--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.0.2.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.1.0</version> </dependency>
將redis服務的經常使用配置從項目中分離出來,方便項目的移植和管理。spring
redis.key.prefix=redis_key redis.host=localhost redis.port=6379 redis.maxIdle=300 redis.maxActive=600 redis.maxWait=1000 redis.testOnBorrow=true
創建AbstractBaseRedisDao.java類:sql
package com.demon.util.redis.service; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import javax.annotation.Resource; /** * @author zhulongkun20@163.com * @date 2018/3/22 14:02 */ public abstract class AbstractBaseRedisDao<K, V> { @Resource private RedisTemplate<K, V> redisTemplate; /** * 設置redisTemplate * * @param redisTemplate the redisTemplate to set */ public void setRedisTemplate(RedisTemplate<K, V> redisTemplate) { this.redisTemplate = redisTemplate; } /** * 獲取 RedisSerializer * <br>------------------------------<br> */ RedisSerializer<String> getRedisSerializer() { return redisTemplate.getStringSerializer(); } }
新建RedisService.java:markdown
package com.demon.util.redis.service; import java.util.List; /** * @author zhulongkun20@163.com * @date 2018/3/22 14:05 */ public interface RedisService { /** * @param key key * @param value value * @description set a key to redis */ boolean add(String key, String value); /** * @param keys keys * @param values values * @description 批量增長 */ boolean addByList(List<String> keys, List<String> values); /** * @param key key * @description delete a key from redis */ void delete(String key); /** * @param key key * @value value new value * @description update */ boolean update(String key, String newValue); /** * @param key key * @description get a value by key */ String get(String key); }
package com.demon.util.redis.service; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import redis.clients.jedis.ShardedJedis; import javax.annotation.Resource; import java.io.Serializable; import java.util.List; /** * @author zhulongkun20@163.com * @date 2018/3/22 14:17 */ public class RedisServiceImpl extends AbstractBaseRedisDao implements RedisService { @Resource private RedisTemplate<Serializable, Serializable> redisTemplate; public boolean add(final String key, final String value) { return redisTemplate.execute((RedisCallback<Boolean>) redisConnection -> { RedisSerializer<String> redisSerializer = getRedisSerializer(); byte[] keyByte = redisSerializer.serialize(key); byte[] valuesByte = redisSerializer.serialize(value); return redisConnection.setNX(keyByte, valuesByte); }); } public boolean addByList(final List<String> keys, final List<String> values) { return redisTemplate.execute(redisConnection -> { final RedisSerializer<String> redisSerializer = getRedisSerializer(); //TODO resolve the for not loop problem for (int i = 0; i < values.size(); i++) { byte[] keyByte = redisSerializer.serialize(keys.get(i)); byte[] valueByte = redisSerializer.serialize(values.get(i)); return redisConnection.setNX(keyByte, valueByte); } return true; }, false, false); } public void delete(String key) { redisTemplate.execute((RedisCallback<Long>) redisConnection -> { RedisSerializer<String> redisSerializer = getRedisSerializer(); byte[] keyByte = redisSerializer.serialize(key); return redisConnection.del(keyByte); }); } public boolean update(final String key, final String newValue) { if (get(key) == null) { throw new NullPointerException("數據不存在,key = " + key); } return redisTemplate.execute((RedisCallback<Boolean>) redisConnection -> { RedisSerializer<String> redisSerializer = getRedisSerializer(); byte[] keyByte = redisSerializer.serialize(key); byte[] newValueByte = redisSerializer.serialize(newValue); redisConnection.set(keyByte, newValueByte); return true; }); } public String get(final String key) { return redisTemplate.execute((RedisCallback<String>) redisConnection -> { RedisSerializer<String> redisSerializer = getRedisSerializer(); byte[] keyByte = redisSerializer.serialize(key); byte[] value = redisConnection.get(keyByte); return redisSerializer.deserialize(value); }); } }
能夠根據Redis命令實現相應的方法,這裏實現了所有的Redis操做:mybatis
java之redis篇(spring-data-redis整合)mvc
測試省略。
以上です、
簡単ですが、ここで終わります!