接口:
package com.net.test.redis.base.dao; import java.util.List; /** * @author *** * @Time:2017年8月10日 上午9:23:07 * @version 1.0 * @description */ public interface IRedisDaoList { public void lPush(String key, String value); public void lPushAll(String key, List<String> list); public void set(String key, int offset, String value); public void insert(String key, String value1, String value2); public void getValueByIndex(String key, int offset); public void size(String key); public void remove(String key, long count, String value); public void trim(String key, int start, int end); public void lpop(String key); public void lrange(String key, int start, int end); public void rightPopAndLeftPush(String sourceKey, String destinationKey); }
實現類:
package com.net.test.redis.base.dao.imp; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Repository; import com.net.test.redis.base.dao.IRedisDaoList; /** * @author *** * @Time:2017年8月10日 上午10:58:42 * @version 1.0 * @description */ @Repository public class RedisDaoListImp implements IRedisDaoList { @Autowired private RedisTemplate<String, String> redis; /** * @description 簡單的往數組里面添加元素 * @param key * @param value */ @Override public void lPush(String key, String value) { ListOperations<String, String> oper = redis.opsForList(); int backValue = oper.leftPush(key, value).intValue(); System.out.println("返回值 : " + backValue); } /** * @description 批量往數組里面添加元素 * @param key * @param list */ public void lPushAll(String key, List<String> list) { ListOperations<String, String> oper = redis.opsForList(); int backValue = oper.leftPushAll(key, list).intValue(); System.out.println("返回值 : " + backValue); } /** * @description 對指定下標的數組元素進行替換 * @param key * @param offset * @param value */ @Override public void set(String key, int offset, String value) { ListOperations<String, String> oper = redis.opsForList(); oper.set(key, offset, value); } /** * @description 對指定下標的數組進行插入數據 * @param key * @param value1 原有值 * @param value2 插入的值 */ @Override public void insert(String key, String value1, String value2) { ListOperations<String, String> oper = redis.opsForList(); int backValue = oper.leftPush(key, value1, value2).intValue(); System.out.println("返回值 : " + backValue); } /** * @description 獲取指定下標的數組元素 * @param key * @param offset */ @Override public void getValueByIndex(String key, int offset) { ListOperations<String, String> oper = redis.opsForList(); String value = oper.index(key, offset); System.out.println(offset + "位置下的值為 : " + value); } /** * @description 獲取數組長度 * @param key */ @Override public void size(String key) { ListOperations<String, String> oper = redis.opsForList(); int length = oper.size(key).intValue(); System.out.println(key + " 數組長度為 : " + length); } /** * @description 移除數組匹配到的數據元素 * @param key * @param count 負數:從右往左 整數:從左往右 * @param value 移除的值 */ @Override public void remove(String key, long count, String value) { ListOperations<String, String> oper = redis.opsForList(); int backValue = oper.remove(key, count, value).intValue(); System.out.println(key + " 數組長度為 : " + backValue); } /** * @description 保留區間內的元素,區間外的全部刪除 * @param key * @param start 區間開始 * @param end 區間結束 */ @Override public void trim(String key, int start, int end) { ListOperations<String, String> oper = redis.opsForList(); oper.trim(key, start, end); } /** * @description 從左到右,刪除第一個元素 * @param key */ public void lpop(String key) { ListOperations<String, String> oper = redis.opsForList(); String value = oper.leftPop(key); System.err.println("移除的元素 : " + value); } /** * @description 查詢區間范圍內的元素 * @param key * @param start * @param end */ @Override public void lrange(String key, int start, int end) { ListOperations<String, String> oper = redis.opsForList(); List<String> list = oper.range(key, start, end); for(String str : list) { System.out.println("遍歷 : " + str); } } /** * @description 兩個list之間移元素 * @param sourceKey 源 * @param destinationKey 目的地 */ @Override public void rightPopAndLeftPush(String sourceKey, String destinationKey) { ListOperations<String, String> oper = redis.opsForList(); String v = oper.rightPopAndLeftPush(sourceKey, destinationKey); System.out.println("----------" + v); } }
