public List<String> fetchRange(int start, int end) {
   return listOps.range(LIST_NAME, start, end);
 }
 /**
  * List数据类型 读取key绑定的list集合大小
  *
  * @param key
  * @return 集合大小
  */
 public long getListCount(String key) {
   listOps = redisTemplate.opsForList();
   return listOps.size(key);
 }
 public void insert(String message) {
   listOps.leftPush(LIST_NAME, message);
 }
 /**
  * List数据类型 移出List下标从startIndex到endIndexr之外的值
  *
  * @param key
  * @return null
  */
 public void removeListForIndex(String key, Long startIndex, Long endIndex) {
   listOps = redisTemplate.opsForList();
   listOps.trim(key, startIndex, endIndex);
 }
 /**
  * List数据类型 移出List中的value元素
  *
  * @param key
  * @param value
  * @return null
  */
 public void removeListForValue(String key, String value) {
   listOps = redisTemplate.opsForList();
   listOps.remove(key, 1l, value);
 }
 /**
  * List数据类型 移出List头部第一个元素
  *
  * @param key
  * @return 元素
  */
 public Serializable popList(String key) {
   listOps = redisTemplate.opsForList();
   return listOps.leftPop(key);
 }
 /**
  * List数据类型 读取某索引范围内key对应的list
  *
  * @param key
  * @param beginIndex 开始位置
  * @param endIndex 结束位置
  * @return 数据集合
  */
 public List getList(String key, long beginIndex, long endIndex) {
   listOps = redisTemplate.opsForList();
   return (List) listOps.range(key, beginIndex, endIndex);
 }
 /**
  * List数据类型 新增Key对应的list头部新增元素
  *
  * @param key
  * @param objValue 可序列话的对象
  * @return 插入后List中元素的数量
  */
 public long setList(String key, String objValue) {
   listOps = redisTemplate.opsForList();
   return listOps.leftPush(key, objValue);
 }