Java对redis的五种values的操作API

五种value类型:String,List,Hash,Set,ZSet(有序集)
package com.realrainy.oa;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;

public class RedisTest {

	Jedis je = new Jedis("127.0.0.1", 6379);
//	je.auth("password");

	public static void main(String[] args) {
		RedisTest rt = new RedisTest();
//		rt.rSting();
//		rt.rHash();
//		rt.rList();
//		rt.rSet();
		rt.rSSet();

	}

	public void rSting() {
		// 赋值
		je.set("name", "huangqiqi");
		je.set("username", "huangqiqi");
		je.set("password", "123");
		// 删除
		je.del("name");
		System.out.println(je.get("name"));
		System.out.println(je.get("username"));
		// 自减
		je.decr("password");
		System.out.println(je.get("password"));
		// 增减指定量
		je.incrBy("password", 3);
		System.out.println(je.get("password"));
		// 连接
		je.append("username", "如果没有串,我就自己创建!");
		System.out.println(je.get("username"));
	}

	public void rHash() {
		// 单个赋值
		je.hset("用户表1", "username", "huangqiqi");
		System.out.println(je.hget("用户表1", "username"));
		// 多个赋值
		Map<String, String> map = new HashMap<>();
		map.put("username", "huangqiqi");
		map.put("password", "123");
		je.hmset("用户表2", map);
		System.out.println(je.hmget("用户表2", "username", "password"));
		// 增加数字
		je.hset("用户表1", "age", "23");
		je.hincrBy("用户表1", "age", 2);
		System.out.println(je.hget("用户表1", "age"));
		// 判断字段是否存在
		boolean fiag1 = je.hexists("用户表1", "username");
		boolean fiag2 = je.hexists("用户表1", "password");
		System.out.println(fiag1 + "\t" + fiag2);
		// 获取长度
		System.out.println(je.hlen("用户表1"));
		// 获取所有属性名称
		Set<String> sets = je.hkeys("用户表2");
		for (String str : sets) {
			System.out.println(str);
		}
		// 获取所有属性的值
		List<String> list = je.hvals("用户表1");
		for (String str : list) {
			System.out.println(str);
		}
	}

	public void rList() {
		// 从左边开始添加
		je.lpush("list1", "1", "2", "3");
		je.lpush("list1", "a", "b", "c");
		// 从第1个开始(坐标为0)到倒数第一个(坐标为-1) 也就是最后一个 也就是 所有数据
		System.out.println("list1:" + je.lrange("list1", 0, -1));

		// 从右边开始开始添加,一般人都习惯这种思维
		je.rpush("list2", "1", "2", "3");
		je.rpush("list2", "a", "b", "c");
		System.out.println("list2:" + je.lrange("list2", 0, -1));

		// 从左侧弹出集合元素,并删除该元素
		System.out.println(je.lpop("list1"));
		// 从右侧弹出集合元素,并删除该元素
		System.out.println(je.rpop("list2"));

		// 删除
		je.del("list1");
		je.del("list2");
	}

	public void rSet() {
		// 添加和获取
		je.sadd("set1", "a", "b", "c");
		je.sadd("set1", "a", "d", "e");
		System.out.println("不会出现重复元素:" + je.smembers("set1"));

		// 删除元素
		je.srem("set1", "d", "e");
		System.out.println("删除掉两个元素后:" + je.smembers("set1"));

		// 判断某个元素是否存在
		boolean flag = je.sismember("set1", "a");
		System.out.println(flag);

		/*
		 * 计算差、交、并集
		 */
		je.sadd("set2", "a", "b", "c");
		je.sadd("set3", "b", "c", "d");
		System.out.println("set2:" + je.smembers("set2"));
		System.out.println("set3:" + je.smembers("set3"));

		// 差集: je.sdiff("set2","set3") 结果返回set2有但是set3没有的元素
		Set<String> set1 = je.sdiff("set2", "set3");
		System.out.println("差集:");
		for (String set : set1) {
			System.out.print(set + "\t");
		}

		// 交集
		Set<String> set2 = je.sinter("set2", "set3");
		System.out.println("\n交集:");
		for (String set : set2) {
			System.out.print(set + "\t");
		}

		// 并集
		Set<String> sets3 = je.sunion("set2", "set3");
		System.out.println("\n并集");
		for (String set : sets3) {
			System.out.print(set + "\t");
		}

		// 计算元素总数
		System.out.println("\nset1的元素总数:" + je.scard("set1"));

		// 随机获取一个元素
		String rand = je.srandmember("set1");
		System.out.println("随机获取一个元素:" + rand);
	}

	public void rSSet() {
		// 添加集合期末成绩 元素是平时分,考试,作业 评分分别是80,10,10
		je.zadd("期末成绩", 80, "平时分");
		je.zadd("期末成绩", 10, "考试");
		je.zadd("期末成绩", 10, "作业");

		// 获得元素
		Set<Tuple> sets = je.zrangeWithScores("期末成绩", 0, -1);
		for (Tuple t : sets) {
			System.out.println(t.getElement() + "\t" + t.getScore());
		}
		
		System.out.println("删除得分在70~90分的元素");
		// 删除元素
		je.zremrangeByScore("期末成绩", 70, 90);

		Set<Tuple> sets2 = je.zrangeWithScores("期末成绩", 0, -1);
		for (Tuple t : sets2) {
			System.out.println(t.getElement() + "\t" + t.getScore());
		}
	}
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yelvens

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值