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 命令操作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 語法 :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的優點: 基
我們為什麼要使用List和Set(List,Set詳解)
1、集合概述 類圖 集合和陣列的區別? 集合基本方法 集合特有的遍歷方式?
將資料庫查詢資料封裝到XML檔案中,進行格式化處理,並進行加密操作,和解密操作
1.pom檔案 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7&l
python int型list和str型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)卻可以重