1. 程式人生 > >redis 命令操作list和java 操作list

redis 命令操作list和java 操作list

list  雙向連結串列

1  lpush 方式新增 從左往右新增

127.0.0.1:6379> lpush list1 a b c d r
(integer) 5
127.0.0.1:6379> 

查詢list1 從左到右0 -1

語法 :lrange key start stop   

127.0.0.1:6379> lrange list1 0 -1
1) "r"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> 

2 rpush方式

127.0.0.1:6379> rpush list2 zhangsan lisi  wangmazi  zhaoqian sunli
(integer) 5
127.0.0.1:6379> lrange list2 0 3
1) "zhangsan"
2) "lisi"
3) "wangmazi"
4) "zhaoqian"
127.0.0.1:6379> 

3 lpop 左側彈出集合元素

127.0.0.1:6379> lpop list2 
"zhangsan"
127.0.0.1:6379> 

4 rpop 從右側彈出list集合元素

127.0.0.1:6379> rpop list2
"sunli"
127.0.0.1:6379> 

5 檢視list集合中元素個數  llen key

127.0.0.1:6379> llen list2
(integer) 3
127.0.0.1:6379> llen list1
(integer) 5

6 集合頭部插入元素 lpushx key  value

127.0.0.1:6379> lpushx list2 nihao
(integer) 10
127.0.0.1:6379> lrange list2 0 -1
 1) "nihao"
 2) "xigua"
 3) "caigua"
 4) "caiyu"
 5) "admin"
 6) "wangsanmazi"
 7) "licheng"
 8) "wangmazi"
 9) "xiaoli"
10) "zhaoqian"
127.0.0.1:6379> 

7 集合尾部插入元素rpushx  key  value

127.0.0.1:6379> rpush list2 sunli
(integer) 5
127.0.0.1:6379> lrange list2 0 -1
1) "admin"
2) "lisi"
3) "wangmazi"
4) "zhaoqian"
5) "sunli"
127.0.0.1:6379> 

8 集合頭部插入多個元素

127.0.0.1:6379> lpush list2 caiyu caigua xigua guazi
(integer) 9
127.0.0.1:6379> lrange list2  0 -1
1) "guazi"
2) "xigua"
3) "caigua"
4) "caiyu"
5) "admin"
6) "lisi"
7) "wangmazi"
8) "zhaoqian"
9) "sunli"

9 集合尾部插入多個元素

127.0.0.1:6379> rpush list2 nangua huanggua jiezi
(integer) 12
127.0.0.1:6379> lrange list2 0  -1
 1) "guazi"
 2) "xigua"
 3) "caigua"
 4) "caiyu"
 5) "admin"
 6) "lisi"
 7) "wangmazi"
 8) "zhaoqian"
 9) "sunli"
10) "nangua"
11) "huanggua"
12) "jiezi"
127.0.0.1:6379> 

10 指定方向刪除指定個元素 lrem

127.0.0.1:6379> lrem list2 1 guazi
(integer) 1
127.0.0.1:6379> lrange list2 0 -1
 1) "xigua"
 2) "caigua"
 3) "caiyu"
 4) "admin"
 5) "lisi"
 6) "wangmazi"
 7) "zhaoqian"
 8) "sunli"
 9) "nangua"
10) "huanggua"
11) "jiezi"
127.0.0.1:6379> rpush list2 jiezi jiezi jiezi jiezi
(integer) 15
127.0.0.1:6379> lrange list2 0 -1
 1) "xigua"
 2) "caigua"
 3) "caiyu"
 4) "admin"
 5) "lisi"
 6) "wangmazi"
 7) "zhaoqian"
 8) "sunli"
 9) "nangua"
10) "huanggua"
11) "jiezi"
12) "jiezi"
13) "jiezi"
14) "jiezi"
15) "jiezi"
127.0.0.1:6379> lrem list2 -5 jiezi   - 代表從右側開始刪除5個 jiezi
(integer) 5
127.0.0.1:6379> lrange list2 0 -1
 1) "xigua"
 2) "caigua"
 3) "caiyu"
 4) "admin"
 5) "lisi"
 6) "wangmazi"
 7) "zhaoqian"
 8) "sunli"
 9) "nangua"
10) "huanggua"
127.0.0.1:6379> 

11 刪除集合中所有的張三

127.0.0.1:6379> lpush list2 zhangsan zhangsan
(integer) 12
127.0.0.1:6379> rpush list2 zhangsan  zhangsan
(integer) 14
127.0.0.1:6379> lrange list2 0 -1
 1) "zhangsan"
 2) "zhangsan"
 3) "xigua"
 4) "caigua"
 5) "caiyu"
 6) "admin"
 7) "lisi"
 8) "wangmazi"
 9) "zhaoqian"
10) "sunli"
11) "nangua"
12) "huanggua"
13) "zhangsan"
14) "zhangsan"
127.0.0.1:6379> lrem list2 0 zhangsan
(integer) 4
127.0.0.1:6379> lrange list2 0 -1
 1) "xigua"
 2) "caigua"
 3) "caiyu"
 4) "admin"
 5) "lisi"
 6) "wangmazi"
 7) "zhaoqian"
 8) "sunli"
 9) "nangua"
10) "huanggua"
127.0.0.1:6379> 

12  設定指定索引的值 lset 

127.0.0.1:6379> lset list2 4  "wangsanmazi" 設定索引為4 的元素的值為王三麻子  索引下標從0開始
OK
127.0.0.1:6379> lrange list2 0 -1
 1) "xigua"
 2) "caigua"
 3) "caiyu"
 4) "admin"
 5) "wangsanmazi"
 6) "wangmazi"
 7) "zhaoqian"
 8) "sunli"
 9) "nangua"
10) "huanggua"
127.0.0.1:6379> 

13 在集合某元素中插入指定元素    linsert key BEFORE|AFTER pivot value   BEFORE 後  AFTER  前


127.0.0.1:6379> linsert list2 before wangmazi licheng 在wangmazi之前插入licheng
(integer) 11
127.0.0.1:6379> linsert list2 after wangmazi xiaoli  在wangmazi之後插入xiaoli
(integer) 12
127.0.0.1:6379> lrange list2 0 -1
 1) "xigua"
 2) "caigua"
 3) "caiyu"
 4) "admin"
 5) "wangsanmazi"
 6) "licheng"
 7) "wangmazi"
 8) "xiaoli"
 9) "zhaoqian"
10) "sunli"
11) "nangua"
12) "huanggua"
127.0.0.1:6379> 

14 將集合中的元素彈出並插入到另一個集合  rpoplpush source destination    source  源集合   destination 目標集合

127.0.0.1:6379> rpoplpush list2  list3
"huanggua"
127.0.0.1:6379> rpoplpush list2  list3
"nangua"
127.0.0.1:6379> rpoplpush list2  list3
"sunli"
127.0.0.1:6379> lrange list3 0 -1
1) "sunli"
2) "nangua"
3) "huanggua"
127.0.0.1:6379> 

15 刪除指定區間外的值

127.0.0.1:6379> ltrim list2 0 1
OK
127.0.0.1:6379> lrange list2 0 -1
1) "nihao"
2) "xigua"
127.0.0.1:6379> 

16 陣列排序

127.0.0.1:6379> lpush sort1 1 2 8 9 5 4 89 25 23 6 4 
(integer) 11
127.0.0.1:6379> lrange sort1 0 -1
 1) "4"
 2) "6"
 3) "23"
 4) "25"
 5) "89"
 6) "4"
 7) "5"
 8) "9"
 9) "8"
10) "2"
11) "1"
127.0.0.1:6379> sort sort1
 1) "1"
 2) "2"
 3) "4"
 4) "4"
 5) "5"
 6) "6"
 7) "8"
 8) "9"
 9) "23"
10) "25"
11) "89"
127.0.0.1:6379> 

17 通過java程式碼操作list集合

package redisUtils;

import java.util.List;

import org.junit.Test;

import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.Jedis;
/**
 * 操作list集合
 * @Description: TODO(用一句話描述該檔案做什麼)  
* @author guochao 
* @date 2018年10月2日  
*
 */
public class RedisList {
	@Test
	public  void add(){ //從左新增和從右新增
		Jedis jedis = RedisUtils.getJedis();
		// 從右往左
		jedis.rpush("nameList", "zhangsan");
		jedis.rpush("nameList", "lisi");
		jedis.rpush("nameList", "wangmazi");
		//  從左往右
		jedis.lpush("nameList", "zhangsan1");
		jedis.lpush("nameList", "zhangsan2");
		jedis.lpush("nameList", "zhangsan3");
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
		for (String name : nameList) {
			System.out.println(name);
			/**
			 * 	zhangsan3
				zhangsan2
				zhangsan1
				zhangsan
				lisi
				wangmazi
			 */
		}
		jedis.close();
		RedisUtils.close();
	}
	@Test
	public  void addIndex(){ // 從指定位置新增元素
		Jedis jedis = RedisUtils.getJedis();
		jedis.linsert("nameList", LIST_POSITION.AFTER, "zhangsan1", "zhangsan4");//在zhangsan1後增加一個zhangsan4
		jedis.linsert("nameList", LIST_POSITION.BEFORE, "zhangsan1", "zhangsan0");//在zhangsan1前增加一個zhangsan0
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
		for (String name : nameList) {
			System.out.println(name);
		/**
		 * zhangsan3
			zhangsan2
			zhangsan0
			zhangsan1
			zhangsan4
			zhangsan
			lisi
			wangmazi
		 */
		}
		
		jedis.close();
		RedisUtils.close();
	}
	@Test
	public  void setIndex(){
		Jedis jedis = RedisUtils.getJedis();
		jedis.lset("nameList",1, "wangmazi"); // 設定從左往右數第二個元素的值為wangmazi
		jedis.lset("nameList",-1, "pig"); // 設定從右往左第一個元素的值為pig
		jedis.lset("nameList",-2, "pig"); // 設定從右往左 第二個元素的值為pig
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
		for (String name : nameList) {
			System.out.println(name);
		/**
		 * zhangsan3
			wangmazi
			zhangsan0
			zhangsan1
			zhangsan4
			zhangsan
			pig
			pig

		 */
		}
		
	
		
		jedis.close();
		RedisUtils.close();
		
	}
	@Test
	public  void delList(){
		Jedis jedis = RedisUtils.getJedis();
		Long lrem = jedis.lrem("nameList", 0, "pig");// 刪除集合中所有的pig
		System.out.println(lrem); //2
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
		for (String name : nameList) {
			System.out.println(name);
		/**
		 *
			zhangsan3
			wangmazi
			zhangsan0
			zhangsan1
			zhangsan4
			zhangsan
		 */
		}
		
		jedis.close();
		RedisUtils.close();
		
	}
	/**
	 * 從左側彈出元素
	 * 從右側彈出元素
	* @Description: TODO(用一句話描述該檔案做什麼)  
	* @author guochao 
	* @date 2018年10月2日  
	*
	 */
	@Test
	public void  testPop(){
		Jedis jedis = RedisUtils.getJedis();
		String lpop = jedis.lpop("nameList");
		System.out.println("左側彈出:"+lpop);
		String rpop = jedis.rpop("nameList");
		System.out.println("右側彈出:"+rpop);
		/**
		 * 左側彈出:zhangsan3
			右側彈出:zhangsan
		 */
		jedis.close();
		RedisUtils.close();
	}
	/**
	 * 檢視集合中元素的個數
	* @Description: TODO(用一句話描述該檔案做什麼)  
	* @author guochao 
	* @date 2018年10月2日  
	*
	 */
	@Test
	public void llenList(){
		Jedis jedis = RedisUtils.getJedis();
		Long llen = jedis.llen("nameList");
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
		System.out.println(llen);
		for (String name : nameList) {
			System.out.println(name);
		/**
		 *  4
			wangmazi
			zhangsan0
			zhangsan1
			zhangsan4
			
		 */
		}
		jedis.close();
		RedisUtils.close();
	}
	/**
	 * 集合頭部插入元素
	* @Description: TODO(用一句話描述該檔案做什麼)  
	* @author guochao 
	* @date 2018年10月2日  
	*
	 */
	@Test
	public void lpushX(){
		Jedis jedis = RedisUtils.getJedis();
		jedis.lpushx("nameList", "找錢");
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
	
		for (String name : nameList) {
			System.out.println(name);
		/**
		 *  找錢
			wangmazi
			zhangsan0
			zhangsan1
			zhangsan4
			
		 */
		}
		jedis.close();
		RedisUtils.close();
	}
	
	/**
	 * 集合尾部插入元素
	* @Description: TODO(用一句話描述該檔案做什麼)  
	* @author guochao 
	* @date 2018年10月2日  
	*
	 */
	@Test
	public void rpushX(){
		Jedis jedis = RedisUtils.getJedis();
		jedis.rpushx("nameList", "王麻子");
		List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
	
		for (String name : nameList) {
			System.out.println(name);
		/**
		 *  找錢
			wangmazi
			zhangsan0
			zhangsan1
			zhangsan4
			王麻子
			
		 */
		}
		jedis.close();
		RedisUtils.close();
	}
	/**
	 * 彈出元素  存入新的集合
	* @Description: TODO(用一句話描述該檔案做什麼)  
	* @author guochao 
	* @date 2018年10月2日  
	*
	 */
	@Test
	public void  rpopLpushDesc(){
		Jedis jedis = RedisUtils.getJedis();
		jedis.brpoplpush("nameList", "newList",1);
		List<String> newList = jedis.lrange("newList", 0, -1);// 查詢出newList集合中的素有元素
		
		for (String name : newList) {
			System.out.println("newList"+name);
		/**
		 *  
			newList王麻子
			
		 */
		}
		
		jedis.close();
		RedisUtils.close();
	}
	/**
	 * 陣列排序
	 */
	@Test
	public  void sortList(){
		Jedis jedis = RedisUtils.getJedis();
		List<String> sort1 = jedis.lrange("sort1", 0, -1);// 查詢出sort1集合中的素有元素
		System.out.println("未排序:");
		for (String name : sort1) {
			System.out.print(name+" ");
		
		}
		System.out.println("");
		System.out.println("排序後:");
		List<String> sort = jedis.sort("sort1");
		for (String name : sort) {
			System.out.print(name+" ");
		}
		/**
		 * 未排序:
			4 6 23 25 89 4 5 9 8 2 1 
			排序後:
			1 2 4 4 5 6 8 9 23 25 89 

		 */
		
		jedis.close();
		RedisUtils.close();
	}
	/**
	 * 刪除指定區間外的值
	 * ltirm
	* @Description: TODO(用一句話描述該檔案做什麼)  
	* @author guochao 
	* @date 2018年10月2日  
	*
	 */
	@Test
	public  void  delLtirm(){
		Jedis jedis = RedisUtils.getJedis();
		 jedis.ltrim("nameList", 0, 0); // 保留第一個元素  其他的全部刪除
		 List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
			
			for (String name : nameList) {
				System.out.println(name); //zhangsan3
			
			}
		
		jedis.close();
		RedisUtils.close();
	}
	@Test
	 public  void  testDel(){
		Jedis jedis = RedisUtils.getJedis();
		jedis.lrem("nameList", 0, "zhangsan3");
		 List<String> nameList = jedis.lrange("nameList", 0, -1);// 查詢出nameList集合中的素有元素
			
			for (String name : nameList) {
				System.out.println(name); //
			
			}
		jedis.close();
		RedisUtils.close();
		
	 }
	
}



相關推薦

redis 命令操作listjava 操作list

list  雙向連結串列 1  lpush 方式新增 從左往右新增 127.0.0.1:6379> lpush list1 a b c d r (integer) 5 127.0.0.1:6379> 查詢list1 從左到右0 -1 語法 :lran

redis 命令操作map java操作map

hset key field value 單個設定 hget key field 獲取map中指定key的值 HMSET key field value [field value ...] 多個設定 HMGET key field [field ...]

mongodb基本命令Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/

Linux常用命令———文件目錄操作命令(18個)

系統/運維 Linux 文件和目錄操作命令(18個) ls(列出目錄內容和屬性) 全拼list,功能是列出目錄的內容及其內容屬性信息。-l(long) 長格式 註:-l 顯示的時間是mtime-d --directorys當遇到目錄時列出目錄本身而非目錄內的文件

redis的發布訂閱操作

技術分享 分享 ima alt bubuko .com img 訂閱 edi redis的發布和訂閱操作

Redis總結--redis的資料型別簡單操作

一、redis的五大資料型別 1、String(字串) 2、Hash(雜湊,類似於java的Map) 3、List(列表) 4、Set(集合) 5、Zset(sorted set 有序集合) 二、常用命令: (一)key 1、exists key : 判斷某個key是否存在 2、move key d

Redis的資料型別常用操作

五大資料型別 字串:String String是Redis最基本的型別,一個Key對應一個Value String型別是二進位制安全的,意思是Redis的String可以包含任何資料,例如一張jpg格式的圖片或者一個序列化的物件 一個Redis的字串型別Value

HIVE一些小技巧java操作hive

開啟微信掃一掃,關注微信公眾號【資料與演算法聯盟】 1.寫在前邊的話         自己電腦上部署的hive版本是hive1.1.1,在終端執行hive 命令時,凡是涉及where語句時,就會出現異常退出,對於一個開發者怎麼能忍受這種情況

Redis-Redis基本型別及使用Java操作

1 Redis簡介     Redis(REmote Dictionary Server)是一個使用ANSI C編寫的、開源的、支援網路的、基於記憶體的、可持久化的鍵值對儲存系統。目前最流行的鍵值對儲存系統。 經常被用作資料庫、快取以及訊息佇列等。 redis的優點: 基

我們為什麼要使用ListSet(List,Set詳解)

  1、集合概述 類圖 集合和陣列的區別? 集合基本方法 集合特有的遍歷方式?

將資料庫查詢資料封裝到XML檔案中,進行格式化處理,並進行加密操作解密操作

1.pom檔案 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7&l

python int型liststr型list互轉

一.方式一 1.str --> int results = ['1','2','3'] results = list(map(int, results)) 2.int --> str results = [1,2,3] results = list(map(str, results))

elasticsearch基本操作之--使用java操作elasticsearch

package com.wenbronk.javaes; import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.Date; import java.util.HashMap; import jav

s:iterator遍歷兩個平行list巢狀list

這個是對我上一個的升級,只做自己記憶吧 <s:iterator value="namelist" var="b" status="status"> <tr>

java.util.List;與java.awt.List;的區別

java.util.List public interface List<E>extends Collection<E> 有序的 collection(也稱為序列)。此介面的使用者可以對列表中每個元素的插入位置進行精確地控制。使用者可

java.util.List;與 java.awt.List; 的區別

開發十年,就只剩下這套架構體系了! >>>   

redis的資料型別List,其原生命令php操作Redis List函式介紹

List型別介紹 List是簡單的字串列表,按照插入順序排序,可以從列表的兩頭新增資料,一個列表最多可以包含2^32-1個元素(超過40億個元素) List原生命令 命令 命令描述 例項 LPUSH key value1 [va

redis,1】java操作redis: 將string、list、map、自己定義的對象保存到redis

n) spa 存儲 div ber sys mil 操作 write 一、操作string 、list 、map 對象 1、引入jar: jedis-2.1.0.jar 2、代碼 /

redis命令操作set集合java方式操作set集合

sadd key member [member ...] 向集合中增加元素 SMEMBERS key 查詢集合中所有的元素 srem key member [member ...] 移除集合中指定元素 SISMEMBER key member 判斷集合中是否

redis 命令操作sort set java方式操作

Redis (sorted set)有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員。 不同的是每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。 有序集合的成員是唯一的,但分數(score)卻可以重