@SuppressWarnings("unchecked")
 @Override
 public Set<K> keys() {
   try {
     Set<byte[]> keys = cache.keys(this.keyPrefix + "*");
     if (CollectionUtils.isEmpty(keys)) {
       return Collections.emptySet();
     } else {
       Set<K> newKeys = new HashSet<K>();
       for (byte[] key : keys) {
         newKeys.add((K) key);
       }
       return newKeys;
     }
   } catch (Throwable t) {
     throw new CacheException(t);
   }
 }
 @Override
 public Collection<V> values() {
   try {
     Set<byte[]> keys = cache.keys(this.keyPrefix + "*");
     if (!CollectionUtils.isEmpty(keys)) {
       List<V> values = new ArrayList<V>(keys.size());
       for (byte[] key : keys) {
         @SuppressWarnings("unchecked")
         V value = get((K) key);
         if (value != null) {
           values.add(value);
         }
       }
       return Collections.unmodifiableList(values);
     } else {
       return Collections.emptyList();
     }
   } catch (Throwable t) {
     throw new CacheException(t);
   }
 }