Marco's Java【Redis入门(七) 之 Jedis的常规使用】

前言

本节内容主要是教大家如何在Java上使用Redis,这两者成功合体之后还有个专门的名词,叫Jedis。
主要都是一些API的使用啦,没啥难度,前面的内容只要掌握了,这个问题不大。话不多说,咱们就继续往下看吧~



Jedis所需要的jar包依赖

如下就是Redis和Java的中间jar包jedis-3.1.0.jar啦~ 导入到pom.xml即可。记得创建Maven项目哦。

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.1.0</version>
</dependency>
Jedis常用操作
测试连通性
package com.marco;

import redis.clients.jedis.Jedis;

public class TestRedisPing {
	public static void main(String[] args) {
		Jedis jedis = new Jedis("192.168.144.141", 6379);
		jedis.auth("123456");
		// 设置密码 如果没有密码可以不设置
		jedis.auth("123456");
		// 调用 ping方法
		String ping = jedis.ping();
		// 输出PONG
		System.out.println(ping);
		jedis.close();
	}
}

如果联通之后控制台上会显示PONG(嗯… PING PONG,没毛病… )
在这里插入图片描述


Jedis常规操作

我这里归纳总结了Jedis的五种数据类型String、List、Hash、Set以及Zset的常规操作。
String数据类型

package com.marco;

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

import redis.clients.jedis.Jedis;

public class TestRedisCommon {
	public static void main(String[] args) {
		// 创建连接
		Jedis jedis = new Jedis("192.168.144.141", 6379);
		// 设置密码 如果没有密码可以不设置
		jedis.auth("123456");
		//获取当前所有的keys
		Set<String> keys = jedis.keys("*");
		for (String key : keys) {
			System.out.print(key + " ");
		}
		System.out.println();//换行
		System.out.println("###@#############String######################");
		//测试是否存在key为name
		System.out.println("jedis exists ======>" + jedis.exists("name"));
		//查询过期时间
		System.out.println("ttl======>" + jedis.ttl("name"));
		//String追加操作
		System.out.println("append======>" + jedis.append("name", " zheng"));
		//单个设置key-value
		jedis.set("language", "reids");
		//多个设置key-value
		jedis.mset("age","18","address","wuhan","hobby","guitar");
		//关闭流资源
		jedis.close();
	}
}

Hash数据类型

public class TestRedisCommon {
	public static void main(String[] args) {
		// 创建连接
		Jedis jedis = new Jedis("192.168.144.141", 6379);
		// 设置密码 如果没有密码可以不设置
		jedis.auth("123456");
		System.out.println("###@#############Hash######################");
		//设置单个hash的key-value
		jedis.hset("user:1", "name","sunnie");
		//设置多个hash的key-value
		Map<String, String> map = new HashMap<String, String>();
		map.put("age","18");
		map.put("address","chongqin");
		map.put("email","75452325@qq.com");
		jedis.hmset("user:1", map);
		//Hash遍历
		List<String> hmget = jedis.hmget("user:1", "name", "email");
		hmget.forEach(s -> System.out.println(s));
		//删除hash对象中的key-value
		Long hdel = jedis.hdel("user:1", "email");
		System.out.println("del =======>" + (hdel > 0 ? "success":"failed"));
	}
}

List数据类型

public class TestRedisCommon {
	public static void main(String[] args) {
		// 创建连接
		Jedis jedis = new Jedis("192.168.144.141", 6379);
		// 设置密码 如果没有密码可以不设置
		jedis.auth("123456");
		System.out.println("###@#############List######################");
		//left-push
		jedis.lpush("telephoneList", "13526542354","15423562541");
		//right-push
		jedis.rpush("telephoneList", "18726532354","13623562542");
		//List遍历 (0 -1 遍历所有)
		List<String> lrange = jedis.lrange("telephoneList", 0, -1);
		lrange.forEach(s -> System.out.println(s));
		//left-pop
		System.out.println("left-pop=======>" + jedis.lpop("telephoneList"));
		//right-pop
		System.out.println("right-pop=======>" + jedis.rpop("telephoneList"));
		//获取指定索引的值
		System.out.println("index of 2" + jedis.lindex("telephoneList", 1));
	}
}		

Set数据类型

public class TestRedisCommon {
	public static void main(String[] args) {
		// 创建连接
		Jedis jedis = new Jedis("192.168.144.141", 6379);
		// 设置密码 如果没有密码可以不设置
		jedis.auth("123456");
		System.out.println("###@#############Set######################");
		//Set添加值
		jedis.sadd("members", "marco","sunnie","spiderman","ironman");
		//Set遍历
		Set<String> smembers = jedis.smembers("members");
		smembers.forEach(s -> System.out.println(s));
		//Set移除值
		Long srem = jedis.srem("members", "ironman");
		System.out.println("remove set-key ironman=====" + (srem > 0 ? "success":"failed"));
		//获取set的长度
	    System.out.println(jedis.smembers("members").size());
	}
}		

ZSet数据类型

public class TestRedisCommon {
	public static void main(String[] args) {
		// 创建连接
		Jedis jedis = new Jedis("192.168.144.141", 6379);
		// 设置密码 如果没有密码可以不设置
		jedis.auth("123456");
		System.out.println("###@#############ZSet######################");
	    //ZSet单个添加值
	    jedis.zadd("orders", 60d, "OD123123");
	    //ZSet批量添加值
	    Map<String, Double> orders = new HashMap<String, Double>();
	    orders.put("OD412123", 70d);
	    orders.put("OD123124", 80d);
		jedis.zadd("orders", orders);
		//Set遍历
		Set<String> sorders = jedis.zrange("orders", 0, -1);
		sorders.forEach(s -> System.out.println(s));
	}
}			    


主从复制
package com.marco;

import redis.clients.jedis.Jedis;

public class TestRedisMS {
	public static void main(String[] args) throws InterruptedException {
		Jedis jedis_master = new Jedis("192.168.144.141", 6380);
		Jedis jedis_slave = new Jedis("192.168.144.141", 6381);
		//设置"port=6381"为从机,"port=6381"为主机
		jedis_slave.slaveof("192.168.144.141", 6380);
		//往主机中设置值
		jedis_master.set("author", "Salvatore Sanfilippo");
		//线程休眠
		Thread.sleep(500);
		//测试从机中获取主机设置的值
		System.out.println("Redis Author is " + jedis_slave.get("author"));
		//关闭流资源
		jedis_master.close();
		jedis_slave.close();
	}
}

以上代码测试结果为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值