Redis 在 Java 中的基础使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Geffin/article/details/100085058

1 打开 Redis

输入命令如下:
在这里插入图片描述

引入依赖

<dependency>
    	<groupId>redis.clients</groupId>
    	<artifactId>jedis</artifactId>
    	<version>3.1.0</version>
</dependency>

连接到 Redis

public static void main( String[] args ){
    	//连接本地的 Redis 服务
        Jedis jedis = new Jedis("localhost");
        //查看服务是否运行
        System.out.println("服务正在运行: "+jedis.ping());
    }

在这里插入图片描述
证明程序已经成功连接到 Redis

Redis 常用命令

对字符串的使用

public class App {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		//清空所有数据
		jedis.flushDB();
		//增加键值对
		jedis.set("name", "哈姆");
		//查询键值对
		System.out.println(jedis.get("name"));
		//删除键值对,返回值为1代表成功,0代表失败
		System.out.println(jedis.del("name2"));
		//设置多个键值对
		jedis.mset("age","19","day","1999");
		//判断某个key是否存在
		System.out.println(jedis.exists("age"));
		//获取系统中的所有键
		Set<String> keys = jedis.keys("*"); 
        Iterator<String> it = keys.iterator() ;   
        while(it.hasNext()){   
            String key = it.next();   
            System.out.print(key + " ");   
        }
        System.out.println();
        //设置键的过期时间,把name的过期时间设置为5秒
        jedis.expire("name",5);
        //查看某个key的剩余生存时间,永久生存或者不存在的都返回-1
        System.out.println(jedis.ttl("name"));
	}
}

测试结果如下:

哈姆
0
true
name day age
5

对哈希的使用

public class App {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		//清空所有数据
		jedis.flushDB();
		//在哈希表hash中增加键值对
		jedis.hset("hash","key01","value01");
		jedis.hset("hash","key02","value02");
		//查询哈希表hash中的所有值
		System.out.println(jedis.hvals("hash"));
		//删除哈希表hash中的键值对
		jedis.hdel("hash","key01");
		//在哈希表hash中增加整形键值对,注意若该语句一直执行其value会累加
		jedis.hincrBy("hash","key03",100);
		//查询哈希表hash的key是否存在
		System.out.println(jedis.hexists("hash","key03"));
		//获取哈希表hash中key对应的value
		System.out.println(jedis.hget("hash","key03"));
	}
}

测试结果如下:

[value01, value02]
true
100

对列表的使用

public class App {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		//清空所有数据
		jedis.flushDB();
		//向列表中增加数据
		jedis.lpush("list", "v01");
		jedis.lpush("list", "v02");
		jedis.lpush("list", "v03");
		jedis.lpush("list", "v04");
		jedis.lpush("list", "v05");
		//查询列表中的元素,0表示列表的第一个元素,-1表示列表的最后一个元素
		System.out.println(jedis.lrange("list", 0, -1));
		//删除元素,第二个参数为删除的个数(有重复时),后增加的先被删除
		jedis.lrem("list", 1, "v02");
		//修改列表中指定的值
		jedis.lset("list",0,"v00");
		//查询列表长度
		System.out.println(jedis.llen("list"));
	}
}

测试结果如下:

[v05, v04, v03, v02, v01]
4

对集合的使用

public class App {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		//清空所有数据
		jedis.flushDB();
		//向集合增加数据
		jedis.sadd("set","小明","老王");
        jedis.sadd("set","读卡兰");
        //获取集合的成员数
        System.out.println(jedis.scard("set"));
        //返回集合中的所有成员,注意顺序是无序的
        System.out.println(jedis.smembers("set"));
        //删除集合中的数据
        jedis.srem("set","小明");
        //查询集合中是否存在某数据
        System.out.println(jedis.sismember("set","读卡兰"));
        
        jedis.sadd("set1", "老王","dul");
        //求交集
        System.out.println(jedis.sinter("set","set1"));
        //求并集
        System.out.println(jedis.sunion("set","set1"));
        //求差集
        System.out.println(jedis.sdiff("set","set1"));
	}
}

测试结果如下:

3
[读卡兰, 老王, 小明]
true
[老王]
[读卡兰, dul, 老王]
[读卡兰]

对有序集合的使用

注意,Redis 中有序集合和集合一样也是字符串类型元素的集合,且不允许重复的成员。但是每个元素都会关联一个 double 类型的分数,在 Redis 中通过分数对每个成员进行从小到大的排序。有序集合中成员唯一,但分数可以重复。

public class App {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		//清空所有数据
		jedis.flushDB();
		//增加数据
		jedis.zadd("zset",1,"v01");
		jedis.zadd("zset",2,"v02");
		jedis.zadd("zset",7,"v03");
		jedis.zadd("zset",2.5,"v04");
		//查询有序集合中的元素,按照权重从小到大进行排序
		System.out.println(jedis.zrange("zset",0,-1));
		//删除有序集合中的元素
		System.out.println(jedis.zrem("zset", "v02"));
		//查询有序集合中元素的个数
		System.out.println(jedis.zcard("zset"));
		//查询有序集合中元素权重在某个区间的个数
		System.out.println(jedis.zcount("zset", 1, 3));
		//查询有序集合中某个元素的权重
		System.out.println(jedis.zscore("zset", "v04"));
		//查询有序集合中下标范围内的元素值
		System.out.println(jedis.zrange("zset", 0, 1));
	}
}

测试结果如下:

[v01, v02, v04, v03]
1
3
2
2.5
[v01, v04]

猜你喜欢

转载自blog.csdn.net/Geffin/article/details/100085058