Ejemplo n.º 1
0
 public void putStringByKey(final String key, final String value) {
   redisTemplate.execute(
       new RedisCallback<String>() {
         @Override
         public String doInRedis(RedisConnection connection) throws DataAccessException {
           connection.set(key.getBytes(), value.getBytes());
           return null;
         }
       });
 }
Ejemplo n.º 2
0
 // String数据类型 存储一对键值 仅支持value为String类型
 public void setString(final String key, final String value) {
   redisTemplate.execute(
       new RedisCallback<Serializable>() {
         public Serializable doInRedis(RedisConnection connection) throws DataAccessException {
           connection.set(
               redisTemplate.getStringSerializer().serialize(key),
               redisTemplate.getStringSerializer().serialize(value));
           return null;
         }
       });
 }
Ejemplo n.º 3
0
 public String getStringByKey(final String key) {
   return redisTemplate.execute(
       new RedisCallback<String>() {
         @Override
         public String doInRedis(RedisConnection connection) throws DataAccessException {
           if (connection.exists(key.getBytes())) {
             return new String(connection.get(key.getBytes()));
           }
           return null;
         }
       });
 }
Ejemplo n.º 4
0
 public boolean setnx(final String key, final String value, Long expireTime) {
   Boolean result =
       redisTemplate.execute(
           new RedisCallback<Boolean>() {
             @Override
             public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
               return connection.setNX(key.getBytes(), value.getBytes());
             }
           });
   if (result) redisTemplate.expire(key, expireTime, TimeUnit.MILLISECONDS);
   return result;
 }
 @Override
 public boolean setExpireTime(final Object key, final long time) {
   return template.execute(
       new RedisCallback<Boolean>() {
         @Override
         public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
           RedisSerializer<String> serializer = template.getStringSerializer();
           byte[] serializerKey = serializer.serialize((String) key);
           return connection.expire(serializerKey, time);
         }
       });
 }
 @Override
 public void clean() {
   // dangerous
   template.execute(
       new RedisCallback<Object>() {
         @Override
         public Object doInRedis(RedisConnection connection) throws DataAccessException {
           connection.flushDb();
           return null;
         }
       },
       true);
 }
Ejemplo n.º 7
0
 /**
  * String数据类型 读取键为key的值仅支持value为String类型
  *
  * @param key
  * @return 字符串
  */
 public Serializable getString(final String key) {
   return redisTemplate.execute(
       new RedisCallback<Serializable>() {
         @Override
         public Serializable doInRedis(RedisConnection connection) throws DataAccessException {
           byte[] byteKey = redisTemplate.getStringSerializer().serialize(key);
           if (connection.exists(byteKey)) {
             byte[] value = connection.get(byteKey);
             String strValue = redisTemplate.getStringSerializer().deserialize(value);
             return strValue;
           }
           return null;
         }
       });
 }
 @Override
 public boolean existKey(final Object key) {
   return template.execute(
       new RedisCallback<Boolean>() {
         @Override
         public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
           byte[] k = null;
           if (template.getKeySerializer() == null && key instanceof byte[]) {
             k = (byte[]) key;
           } else {
             // 强耦合了Redis本地的Serial方法
             StringRedisSerializer strRedisSer = new StringRedisSerializer();
             k = strRedisSer.serialize((String) key);
           }
           return connection.exists(k);
         }
       },
       true);
 }