redis list 基本操作

写在前面的话

  本篇笔记写在笔者刚工作时。如有问题,请指教。

简介

list是链表,redis list的应用场景很多,也是Redis 最重要的数据结构之一,比如微博的关注列表,粉丝列表,消息列表等功能都可以用redis的list结构实现。redis的实现可以为一个双向链表,既可以支持反向查找和遍历,更方便操作。另外lrange命令,就是可以从某个元素开始读取多少个元素,可以实现分页,基于redis实现高性能分页。
 

操作

#lpush key value  给定key list集合左侧添加元素
lpush 1992 123

#rpush key value  给定key list集合右侧添加元素
rpush 1992 124

#len key  给定key list集合的元素数量
llen 1992

#lrange key start stop 给定元素key list结合 [start,stop]位置的元素
[127.0.0.1:6379> lrange 1992 0 5
1) "123"
2) "124"
3) "125"

#lpop key  给定元素key list 左出栈一个元素,集合少一个元素
lpop 1992

#rpop key  给定元素key list 右出栈一个元素,集合少一个元素
rpop 1992

#lrem key count value 给定key list 集合 删除个数count元素,值为value 
lrem 1992 1 123  #删除1992链表中值为123的元素

#ltrim key start stop  #删除 给定key 链表的下标 [start,stop]元素
ltrim 1992 0 10  

#lset key index value # 修改 给定key list 集合 下标为index的值
lset 1992 0 1234

#sort key asc | desc #给定key list 排序    默认 asc
sort 1992
 

list实际使用场景-JAVA 存储公司组织结构列表

package com.restart.redis;

import java.io.Serializable;
import java.util.Random;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;

public class RedisApi {
	
	public static Jedis getJedis() {
		Jedis jedis = new Jedis("127.0.0.1",6379);
		return jedis;
	}
	
	public static void listOp() {
		Jedis jedis = getJedis();
		String companyId = "cpy123";
		for (int i = 0; i < 5; i++) {
			Department department = new Department(i+"","depart" + i);
			jedis.lpush(companyId, JSONObject.toJSONString(department));
			int random = new Random().nextInt(10000);
			for(int k = 0 ;k < random ;k++) {
				Person person = new Person("aust"+k,12,1+k);
				jedis.lpush(i+"", JSONObject.toJSONString(person));
			}
		}
	}
	
	public static void main(String[] args) {
		listOp();
	}

}


class Person implements Serializable{
	
	private static final long serialVersionUID = 1L;

	private String name;
	
	private int age;
	
	private int sex;
	
	public Person() {}
	
	public Person(String name, int age, int sex) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
     // 省略 get set
	
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
}

class Department implements Serializable{ 
  private String id; 
  private String name;
  public Department() {}
  // 省略get set
     }

  

 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/--net/p/12732150.html