jedis(自用)

本文详细介绍了使用Java的Jedis库操作Redis的各种常见操作,包括环境搭建、字符串、列表、哈希、集合、有序集合及Key的管理。通过实例代码展示了set、get、lpush、lrange、hset、hmget、sadd、sdiff、zadd、zrangeByScore等方法的用法,帮助读者深入理解Redis的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Jedis介绍与快速入门

通过java来操作redis使用jedis
在这里插入图片描述
搭建jedis环境
在这里插入图片描述
编写代码
在这里插入图片描述
程序执行报错
原因:

  1. redis服务器是否开启
  2. linux的防火墙是否关闭
  3. 在redis.conf配置文件中 bind 127.0.0.1 代表的是外部 不可以访问redis
    通过以上操作,错误信息不一样了
    原因:是我们没有设置密码
    我们需要在redis.conf文件中设置密码
    在这里插入图片描述

在这里插入图片描述
在命令行下连接redis
在这里插入图片描述

2. string类型常见操作

//string操作
public class JedisDemo2 {
	Jedis jedis;

	@Before
	public void createJedis() {
		jedis = new Jedis("192.168.19.128");
		// 设置密码
		jedis.auth("admin");
	}

	// 演示 set get
	@Test
	public void test1() {
		jedis.set("username", "tom");		
		String value = jedis.get("username");
		System.out.println(value);
	}
	
	//演示mset  mget
	@Test
	public void test2(){
		jedis.mset("password","123","age","20");
		
		List<String> values = jedis.mget("username","password","age");
		
		System.out.println(values);
	}
	
	//演示  append  setrange  getrange
	@Test
	public void test3(){
		//jedis.append("username"," is boy");
		
		//jedis.setrange("username", 7,"girl");
		System.out.println(jedis.get("username"));
		
		
		System.out.println(jedis.getrange("username", 7, -1));
	}

}

3. list类型常见操作

//list操作
public class JedisDemo3 {
	Jedis jedis;

	@Before
	public void createJedis() {
		jedis = new Jedis("192.168.19.128");
		// 设置密码
		jedis.auth("admin");
	}

	// 演示lpush lrange
	@Test
	public void test1() {
		jedis.lpush("names", "tom", "james", "张三", "李四");
		List<String> names = jedis.lrange("names", 0, -1);
		System.out.println(names);
	}

	// lset
	@Test
	public void test2() {
		// jedis.lset("names", 1, "王五");
		// List<String> names = jedis.lrange("names", 0, -1);
		// System.out.println(names);

		String value = jedis.lindex("names", 1);
		System.out.println(value);
	}

	// linsert
	@Test
	public void test3() {
		jedis.linsert("names", LIST_POSITION.BEFORE, "james", "fox");

		List<String> names = jedis.lrange("names", 0, -1);
		System.out.println(names);
	}
	
	// lrem
	@Test
	public void test4(){
		jedis.lrem("names", 1, "tom");
		List<String> names = jedis.lrange("names", 0, -1);
		System.out.println(names);
		
		
	}

}

4. hash类型常见操作

//hash操作
public class JedisDemo4 {
	Jedis jedis;

	@Before
	public void createJedis() {
		jedis = new Jedis("192.168.19.128");
		// 设置密码
		jedis.auth("admin");
	}

	// 演示hset hget
	@Test
	public void test1() {
		jedis.hset("user", "username", "tom");

		String value = jedis.hget("user", "username");
		System.out.println(value);
	}

	// 演示hmset hmget
	@Test
	public void test2() {
		Map<String, String> hash = new HashMap<String, String>();
		hash.put("password", "123");
		hash.put("sex", "male");
		jedis.hmset("user", hash);

		List<String> values = jedis.hmget("user", "username", "password", "sex");
		System.out.println(values);
	}
	
	//演示  hgetall hkeys  kvals
	@Test
	public void test3(){
		Map<String, String> map = jedis.hgetAll("user");
		for(String key:map.keySet()){
			System.out.println(key+"  "+map.get(key));
		}
		
		Set<String> keys = jedis.hkeys("user");
		System.out.println(keys);
		
		List<String> values = jedis.hvals("user");
		System.out.println(values);
	}
	
//	演示hdel
	@Test
	public void test4(){
		jedis.hdel("user", "username","password");
		Map<String, String> map = jedis.hgetAll("user");
		for(String key:map.keySet()){
			System.out.println(key+"  "+map.get(key));
		}
	}
}

5. set类型常见操作

//set操作
public class JedisDemo5 {
	Jedis jedis;

	@Before
	public void createJedis() {
		jedis = new Jedis("192.168.19.128");
		// 设置密码
		jedis.auth("admin");		
	}
	
	//演示sadd smembers
	@Test
	public void test1(){
		jedis.sadd("language1","java","c++","ruby","python");
		
		Set<String> smembers = jedis.smembers("language1");
		System.out.println(smembers);
	}
	
	//演示srem
	@Test
	public void test2(){
		jedis.srem("language1", "java");
		Set<String> smembers = jedis.smembers("language1");
		System.out.println(smembers);
	}
	
	//差集 sdiff
	@Test
	public void test3(){
		jedis.sadd("language1","java","c++","ruby","python");
		jedis.sadd("language2","ios","c++","c#","android");
		
		Set<String> sdiff = jedis.sdiff("language1","language2");
		System.out.println(sdiff);
	}
	
	//交集
	@Test
	public void test4(){
		jedis.sadd("language1","java","c++","ruby","python");
		jedis.sadd("language2","ios","c++","c#","android");
		Set<String> sinter = jedis.sinter("language1","language2");
		System.out.println(sinter);
	}
	
	//并集
	@Test
	public void test5(){
		jedis.sadd("language1","java","c++","ruby","python");
		jedis.sadd("language2","ios","c++","c#","android");
		Set<String> sunion = jedis.sunion("language1","language2");
		System.out.println(sunion);
	}
	
}

6. sortedSet类型常见操作

//sortedset操作
public class JedisDemo6 {
	Jedis jedis;

	@Before
	public void createJedis() {
		jedis = new Jedis("192.168.19.128");
		// 设置密码
		jedis.auth("admin");

	}

	// 演示zadd zrange zrangeByScore
	@Test
	public void test1() {
		Map<String, Double> sm = new HashMap<String, Double>();
		sm.put("张三", 70.0);
		sm.put("李四", 80.0);
		sm.put("王五", 90.0);
		sm.put("赵六", 60.0);
		jedis.zadd("zkey", sm);

		Set<String> set = jedis.zrange("zkey", 0, -1);
		System.out.println(set);
		// 根据分数获取
		Set<String> set1 = jedis.zrangeByScore("zkey", 70.0, 90.0);
		System.out.println(set1);
	}

	// 获取分数元素 zrangeWithScores
	@Test
	public void test2() {
		Map<String, Double> sm = new HashMap<String, Double>();
		sm.put("张三", 70.0);
		sm.put("李四", 80.0);
		sm.put("王五", 90.0);
		sm.put("赵六", 60.0);
		jedis.zadd("zkey", sm);

		Set<Tuple> zws = jedis.zrangeWithScores("zkey", 0, -1);
		for (Tuple t : zws) {
			System.out.println(t.getScore() + "  " + t.getElement());
		}
	}

	// zrank
	@Test
	public void test3() {
		Map<String, Double> sm = new HashMap<String, Double>();
		sm.put("张三", 70.0);
		sm.put("李四", 80.0);
		sm.put("王五", 90.0);
		sm.put("赵六", 60.0);
		jedis.zadd("zkey", sm);

		Long num = jedis.zrank("zkey", "赵六");
		System.out.println(num);
	}

	// zscore
	@Test
	public void test4() {
		Map<String, Double> sm = new HashMap<String, Double>();
		sm.put("张三", 70.0);
		sm.put("李四", 80.0);
		sm.put("王五", 90.0);
		sm.put("赵六", 60.0);
		jedis.zadd("zkey", sm);
		Double zscore = jedis.zscore("zkey", "张三");
		System.out.println(zscore);
	}

	// zrem
	@Test
	public void test5() {
		Map<String, Double> sm = new HashMap<String, Double>();
		sm.put("张三", 70.0);
		sm.put("李四", 80.0);
		sm.put("王五", 90.0);
		sm.put("赵六", 60.0);
		jedis.zadd("zkey", sm);

		jedis.zrem("zkey", "李四");
		
		Set<Tuple> zws = jedis.zrangeWithScores("zkey", 0, -1);
		for (Tuple t : zws) {
			System.out.println(t.getScore() + "  " + t.getElement());
		}
	}

}

7. key的常见操作

//key的通用操作
public class JedisDemo7 {
	Jedis jedis;

	@Before
	public void createJedis() {
		jedis = new Jedis("192.168.19.128");
		// 设置密码
		jedis.auth("admin");

	}
	// keys patten
	@Test
	public void test1(){
		Set<String> keys = jedis.keys("*");
		System.out.println(keys);
	}
	
	// del key
	@Test
	public void test2(){
		Long del = jedis.del("user");
		System.out.println(del);
	}
	
	//关于key时间设置
	@Test
	public void test3(){
		//jedis.expire("username", 200); //设置生命周期为200秒
		jedis.persist("username");
		Long ttl = jedis.ttl("username"); //获取生命周期值
		System.out.println(ttl);
		
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值