Redis列表、集合、散列、有序集合操作命令

本文介绍了Redis中列表、集合和散列等数据结构的操作,包括存储、获取、删除、更新和计数等命令,例如lpush、rpush、lrange、sadd、sismember、hset、hget等,并提供了Java操作Redis的示例代码。
摘要由CSDN通过智能技术生成

列表操作命令

存储值
左端存值语法:lpush key value[value…]

lpush list lily sandy

在这里插入图片描述
右端存值语法:rpush key value [value …]

rpush list tom kitty

在这里插入图片描述
索引存值语法:lset key index value

lset list 3 uto

在这里插入图片描述弹出元素
左端弹出语法:lpop key

lpop list

在这里插入图片描述
右端弹出语法:rpop key

rpop list

在这里插入图片描述
获取元素个数
语法:llen key

llen list

在这里插入图片描述
获取列表元素
两边获取语法:lrange key start stop

lpush users tom kitty land pony jack maddy
lrange users 0 3

// 获取所有

lrange users 0 -1

// 从右端索引

lrange users -3 -1

在这里插入图片描述
索引获取语法:lindex key index

lindex users 2

在这里插入图片描述// 从右端获取

lindex users -5

在这里插入图片描述
删除元素
根据值删除语法:lrem key count value
// count=0 删除所有

lrem userids 0 111

// count > 0 从左端删除前count个

lrem userids 3 222

// count < 0 从右端删除前count个

lrem userids -3 222

在这里插入图片描述
范围删除语法:ltrim key start stop
// 只保留2-4之间的元素

ltrim list 2 4

在这里插入图片描述

集合操作命令

存储值
语法:sadd key member [member …]
// 这里有8个值(2个java),只存了7个

sadd langs java php c++ go ruby python kotlin java

获取元素
获取所有元素语法:smembers key

smembers langs

随机获取语法:srandmember langs count

srandmember langs 3

在这里插入图片描述
判断集合是否存在元素
语法:sismember key member

sismember langs go

在这里插入图片描述
获取集合元素个数
语法:scard key

scard langs

在这里插入图片描述
删除集合元素
语法:srem key member [member …]

srem langs ruby kotlin

在这里插入图片描述
弹出元素
语法:spop key [count]

spop langs 2

在这里插入图片描述

散列操作命令

存放键值
单个语法:hset key field value

hset user name javastack

多个语法:hmset key field value [field value …]

hmset user name javastack age 20 address china

不存在时语法:hsetnx key field value

hsetnx user tall 180

在这里插入图片描述
获取字段值
单个语法:hget key field

hget user age

多个语法:hmget key field [field …]

hmget user name age address

获取所有键与值语法:hgetall key

hgetall user

获取所有字段语法:hkeys key

hkeys user

获取所有值语法:hvals key

 hvals user

在这里插入图片描述
判断字段是否存在
语法:hexists key field

hexists user address

在这里插入图片描述
获取字段数量
语法:hlen key

hlen user

在这里插入图片描述
递增/减
语法:hincrby key field increment

hincrby user tall -10

在这里插入图片描述
删除字段
语法:hdel key field [field …]

hdel user age

在这里插入图片描述

有序集合

存储值
语法:zadd key [NX|XX] [CH] [INCR] score member [score member …]

zadd footCounts 16011 tid 20082 huny 2893 nosy

在这里插入图片描述
获取元素分数
语法:zscore key member

zscore footCounts tid

获取排名范围排名语法:zrange key start stop [WITHSCORES]
// 获取所有,没有分数

zrange footCounts 0 -1

// 获取所有及分数

zrange footCounts 0 -1 Withscores

获取指定分数范围排名语法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

zrangebyscore footCounts 3000 30000 withscores limit 0 1

在这里插入图片描述
增加指定元素分数
语法:zincrby key increment member

zincrby footCounts 2000 tid

在这里插入图片描述
获取集合元素个数
语法:zcard key

zcard footCounts

在这里插入图片描述
获取指定范围分数个数
语法:zcount key min max

zcount footCounts 2000 20000

在这里插入图片描述
删除指定元素
语法:zrem key member [member …]

zrem footCounts huny

在这里插入图片描述
获取元素排名
语法:zrank key member

zrank footCounts tid

在这里插入图片描述
列表Java操作

import java.util.List;
import redis.clients.jedis.Jedis;

public class Main {
	public static void main(String[] args) {
		Jedis jedis = new Jedis();
		/**
		 * LPUSH LRANGE LINDEX RPOP LPOP LLEN LREM
		 */
//		jedis.lpush("color", "black");

//		String color = jedis.lindex("color", 4);
//		System.out.println(color);
		
		printList(jedis);

//		jedis.lpop("color");
//		jedis.lpop("color");

//		System.out.println(jedis.llen("color"));
		
		jedis.lrem("color", -2, "red");
		printList(jedis);

		jedis.close();

	}

	private static void printList(Jedis jedis) {
		// 打印列表
		System.out.println("------打印列表----------");
		List<String> result = jedis.lrange("color", 0, -1);

		for (String str : result) {
			System.out.println(str);
		}
	}
}

集合Java操作

import java.util.Set;
import redis.clients.jedis.Jedis;

public class RedisSet {
	public static void main(String[] args) {
		Jedis jedis = new Jedis();
//		jedis.sadd("animal", "elephant","tiger","lion");
//		jedis.srem("animal", "tiger");
		Set<String> result = jedis.smembers("animal");
		System.out.println(result.toString());
		
		boolean isAnimal = jedis.sismember("animal", "dog");
		System.out.println(isAnimal);		
		jedis.close();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值