1. 程式人生 > >Redis操作List工具類封裝,Java Redis List命令封裝

Redis操作List工具類封裝,Java Redis List命令封裝

Redis列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊)

一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。

下載

Java程式碼  
  1. /**************************** redis 列表List start***************************/  
  2.     /** 
  3.      * 將一個值插入到列表頭部,value可以重複,返回列表的長度 
  4.      * @param key 
  5.      * @param value String 
  6.      * @return 返回List的長度
     
  7.      */  
  8.     public static Long lpush(String key, String value){  
  9.         Jedis jedis = jedisPool.getResource();  
  10.         Long length = jedis.lpush(key, value);  
  11.         jedis.close();  
  12.         return length;  
  13.     }  
  14.     /** 
  15.      * 將多個值插入到列表頭部,value可以重複 
  16.      * @param key 
  17.      * @param values String[]
     
  18.      * @return 返回List的數量size 
  19.      */  
  20.     public static Long lpush(String key, String[] values){  
  21.         Jedis jedis = jedisPool.getResource();  
  22.         Long size = jedis.lpush(key, values);  
  23.         jedis.close();  
  24.         //System.out.println(result);  
  25.         return size;  
  26.     }  
  27.     /** 
  28.      * 獲取List列表 
  29.      * @param key 
  30.      * @param start long,開始索引 
  31.      * @param end long, 結束索引 
  32.      * @return List<String> 
  33.      */  
  34.     public static List<String> lrange(String key, long start, long end){  
  35.         Jedis jedis = jedisPool.getResource();  
  36.         List<String> list = jedis.lrange(key, start, end);  
  37.         jedis.close();  
  38.         return list;  
  39.     }  
  40.     /** 
  41.      * 通過索引獲取列表中的元素 
  42.      * @param key 
  43.      * @param index,索引,0表示最新的一個元素 
  44.      * @return String 
  45.      */  
  46.     public static String lindex(String key, long index){  
  47.         Jedis jedis = jedisPool.getResource();  
  48.         String str = jedis.lindex(key, index);  
  49.         jedis.close();  
  50.         return str;  
  51.     }  
  52.     /** 
  53.      * 獲取列表長度,key為空時返回0 
  54.      * @param key 
  55.      * @return Long 
  56.      */  
  57.     public static Long llen(String key){  
  58.         Jedis jedis = jedisPool.getResource();  
  59.         Long length = jedis.llen(key);  
  60.         jedis.close();  
  61.         return length;  
  62.     }  
  63.     /** 
  64.      * 在列表的元素前或者後插入元素,返回List的長度 
  65.      * @param key 
  66.      * @param where LIST_POSITION 
  67.      * @param pivot 以該元素作為參照物,是在它之前,還是之後(pivot:樞軸;中心點,中樞;[物]支點,支樞;[體]迴轉運動。) 
  68.      * @param value 
  69.      * @return Long 
  70.      */  
  71.     public static Long linsert(String key, LIST_POSITION where, String pivot, String value){  
  72.         Jedis jedis = jedisPool.getResource();  
  73.         Long length = jedis.linsert(key, where, pivot, value);  
  74.         jedis.close();  
  75.         return length;  
  76.     }  
  77.     /** 
  78.      * 將一個或多個值插入到已存在的列表頭部,當成功時,返回List的長度;當不成功(即key不存在時,返回0) 
  79.      * @param key 
  80.      * @param value String 
  81.      * @return Long 
  82.      */  
  83.     public static Long lpushx(String key, String value){  
  84.         Jedis jedis = jedisPool.getResource();  
  85.         Long length = jedis.lpushx(key, value);  
  86.         jedis.close();  
  87.         return length;  
  88.     }  
  89.     /** 
  90.      * 將一個或多個值插入到已存在的列表頭部,當成功時,返回List的長度;當不成功(即key不存在時,返回0) 
  91.      * @param key 
  92.      * @param values String[] 
  93.      * @return Long 
  94.      */  
  95.     public static Long lpushx(String key, String[] values){  
  96.         Jedis jedis = jedisPool.getResource();  
  97.         Long length = jedis.lpushx(key, values);  
  98.         jedis.close();  
  99.         return length;  
  100.     }  
  101.     /** 
  102.      * 移除列表元素,返回移除的元素數量 
  103.      * @param key 
  104.      * @param count,標識,表示動作或者查詢方向 
  105.      * <li>當count=0時,移除所有匹配的元素;</li> 
  106.      * <li>當count為負數時,移除方向是從尾到頭;</li> 
  107.      * <li>當count為正數時,移除方向是從頭到尾;</li> 
  108.      * @param value 匹配的元素 
  109.      * @return Long 
  110.      */  
  111.     public static Long lrem(String key, long count, String value){  
  112.         Jedis jedis = jedisPool.getResource();  
  113.         Long length = jedis.lrem(key, count, value);  
  114.         jedis.close();  
  115.         return length;  
  116.     }  
  117.     /** 
  118.      * 通過索引設定列表元素的值,當超出索引時會拋錯。成功設定返回true 
  119.      * @param key 
  120.      * @param index 索引 
  121.      * @param value 
  122.      * @return boolean 
  123.      */  
  124.     public static boolean lset(String key, long index, String value){  
  125.         Jedis jedis = jedisPool.getResource();  
  126.         String statusCode = jedis.lset(key, index, value);  
  127.         jedis.close();  
  128.         if(SUCCESS_OK.equalsIgnoreCase(statusCode)){  
  129.             return true;  
  130.         }else{  
  131.             return false;  
  132.         }  
  133.     }  
  134.     /** 
  135.      * 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除。 
  136.      * @param key 
  137.      * @param start 
  138.      * <li>可以為負數(-1是列表的最後一個元素,-2是列表倒數第二的元素。)</li> 
  139.      * <li>如果start大於end,則返回一個空的列表,即列表被清空</li> 
  140.      * @param end 
  141.      * <li>可以為負數(-1是列表的最後一個元素,-2是列表倒數第二的元素。)</li> 
  142.      * <li>可以超出索引,不影響結果</li> 
  143.      * @return boolean 
  144.      */  
  145.     public static boolean ltrim(String key, long start, long end){  
  146.         Jedis jedis = jedisPool.getResource();  
  147.         String statusCode = jedis.ltrim(key, start, end);  
  148.         jedis.close();  
  149.         if(SUCCESS_OK.equalsIgnoreCase(statusCode)){  
  150.             return true;  
  151.         }else{  
  152.             return false;  
  153.         }  
  154.     }  
  155.     /** 
  156.      * 移出並獲取列表的第一個元素,當列表不存在或者為空時,返回Null 
  157.      * @param key 
  158.      * @return String 
  159.      */  
  160.     public static String lpop(String key){  
  161.         Jedis jedis = jedisPool.getResource();  
  162.         String value = jedis.lpop(key);  
  163.         jedis.close();  
  164.         return value;  
  165.     }  
  166.     /** 
  167.      * 移除並獲取列表最後一個元素,當列表不存在或者為空時,返回Null 
  168.      * @param key 
  169.      * @return String 
  170.      */  
  171.     public static String rpop(String key){  
  172.         Jedis jedis = jedisPool.getResource();  
  173.         String value = jedis.rpop(key);  
  174.         jedis.close();  
  175.         return value;  
  176.     }  
  177.     /** 
  178.      * 在列表中的尾部新增一個個值,返回列表的長度 
  179.      * @param key 
  180.      * @param value 
  181.      * @return Long 
  182.      */  
  183.     public static Long rpush(String key, String value){  
  184.         Jedis jedis = jedisPool.getResource();  
  185.         Long length = jedis.rpush(key, value);  
  186.         jedis.close();  
  187.         return length;  
  188.     }  
  189.     /** 
  190.      * 在列表中的尾部新增多個值,返回列表的長度 
  191.      * @param key 
  192.      * @param values 
  193.      * @return Long 
  194.      */  
  195.     public static Long rpush(String key, String[] values){  
  196.         Jedis jedis = jedisPool.getResource();  
  197.         Long length = jedis.rpush(key, values);  
  198.         jedis.close();  
  199.         return length;  
  200.     }  
  201.     /** 
  202.      * 僅當列表存在時,才會向列表中的尾部新增一個值,返回列表的長度 
  203.      * @param key 
  204.      * @param value 
  205.      * @return Long 
  206.      */  
  207.     public static Long rpushx(String key, String value){  
  208.         Jedis jedis = jedisPool.getResource();  
  209.         Long length = jedis.rpushx(key, value);  
  210.         jedis.close();  
  211.         return length;  
  212. 相關推薦

    Redis操作List工具封裝Java Redis List命令封裝

    Redis列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊) 一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。 下載 Java程式碼   /*********

    玩轉JDBC打造資料庫操作萬能工具JDBCUtil加入了高效的資料庫連線池利用了引數繫結有效防止SQL注入

    SELECT * FROM emp_test 成功查詢到了14行資料 第1行:{DEPT_TEST_ID=10, EMP_ID=1001, SALARY=10000, HIRE_DATE=2010-01-12, BONUS=2000, MANAGER=1005, JOB=Manager, NAME=張無忌}

    List操作工具

    row exceptio val 字符串 rem 字符 sem != err 1 /** 2 * <p>list操作的工具類</p> 3 */ 4 public class ListUtil { 5 /** 6

    java與javascript對cookie操作工具

    check cells ram tco expire turn get servle request Java對cookie的操作 package cn.utils; import java.util.HashMap; import java.util.Map;

    自己封裝的poi操作Excel工具

    該工具類主要完成的功能是:讀取Excel、彙總Excel的功能。在讀取時,可以設定開始和結束讀取的位置、設定是否讀取多個sheet、設定讀取那個或者那些sheet等。在彙總時,如設定是否覆蓋目標檔案、設定是否比較檢查重複內容、設定檢查重複的列索引等功能。具體來演示一下吧:  &nbs

    java操作MongoDB工具分享

    最近做了個用MongoDB儲存的專案,由於MongoDB對開發人員不開放,由DBA統一管理。因此,自己抽時間寫了個MongoDB的查詢機。便於查詢專案中的資料,方便維護和分析問題。總結了一些java操作MongoDB的方法。本文沒有使用spring-data來操作MongoD

    java操作mongodb工具

    新建maven專案 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

    Springboot操作redis叢集的工具

      最近一直在做SpringCloud的專案,由於用到了redis叢集,所以就想著寫一個操作redis叢集的工具類來。廢話不多說,直接上乾貨。  第一,redis的地址配置:#redis cluster spring.redis.cache.clusterNodes=192.

    輕鬆把玩HttpClient之封裝HttpClient工具(五)攜帶Cookie的請求

           最近更新了一下HttpClientUtil工具類程式碼,主要是添加了一個引數HttpContext,這個是用來幹嘛的呢?其實是用來儲存和傳遞Cookie所需要的。因為我們有很多時候都需要登

    Java資料庫的操作——DBUtils工具結果集處理的方式有幾種?

    public class QueryRunnerDemo{ private static Connection con=JDBCUtils.getConnection(); public static void main(String[] args) throws SQLException{ QueryRun

    Redis儲存快取工具簡單封裝

    一、公共實體類 (1)User.java package cn.xiyou.entity; import java.io.Serializable; /** * User實體 * * @author XIOAHU * */ publi

    輕鬆把玩HttpClient之封裝HttpClient工具(七)新增驗證碼識別功能

           這個HttpClientUtil工具類分享在GitHub上已經半年多的時間了,並且得到了不小的關注,有25顆star,被fork了38次。有了大家的鼓勵,工具類一直也在完善中。最近比較忙,兩個多月前的修改在今天剛修改測試完成,今天再次分享給大家。       驗

    輕鬆把玩HttpClient之封裝HttpClient工具(三)外掛式配置Header

           上篇文章介紹了外掛式配置HttpClient,本文將介紹外掛式配置Header。       為什麼要配置header在前面已經提到了,還裡再簡單說一下,要使用HttpClient模擬請求,去訪問各種介面或者網站資源,都有可能有各種限制,比如說java客戶端模擬

    開源一個我的Java工具集合幫你簡化開發工作

    更新時間:Feb 12, 2018在當初剛接觸Java時,感覺有時候想找實現一些小功能,但是找不到已實現的簡易工具,要麼就是這種有相關功能的庫,呼叫起來特別複雜。我呢,是個特別討厭把簡單的事弄複雜的那種

    redis儲存list工具

    package com.syzton.sunread.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.Closeable; imp

    輕鬆把玩HttpClient之封裝HttpClient工具(九)新增多檔案上傳功能

           在Git上有人給我提Issue,說怎麼上傳檔案,其實我一開始就想上這個功能,不過這半年比較忙,所以一直耽擱了。這次正好沒什麼任務了,趕緊完成這個功能。畢竟作為一款工具類,有基本的請求和下載功能,就差上傳了,有點說不過去。好了,天不早了,咱乾點正事吧。     

    25.大白話說java並發工具-CountDownLatchCyclicBarrier,SemaphoreExchanger

    java rac second service join方法 -o -s exc tor 1. 倒計時器CountDownLatch 在多線程協作完成業務功能時,有時候需要等待其他多個線程完成任務之後,主線程才能繼續往下執行業務功能,在這種的業務場景下,通常可以使用Thre

    封裝poi操作Excel工具

       原文點這裡: 在上一篇文章《使用poi讀寫Excel》中分享了一下poi操作Excel的簡單示例,這次要分享一下我封裝的一個Excel操作的工具類。        該工具類主要完成的功能是:讀取Excel、彙總Excel的功能。在讀取時,可以設定

    java對xml檔案操作工具

    首先列出目錄結構及其檔案內的功能: com.testxml           .main    //所有物件的入口,測試類           .books   //實體           .boos.xml   //xml檔案           .booksDao

    stream流操作List工具

    cat new pty pac edi throw tin 程序 clas 工作中操作List對於程序猿來說是"基本操作",為了更加便利,對JDK8的新特性stream流進行二次封裝.話不多說,直接上代碼 package com.mydemo; imp