企业级Redis开发运维从入门到实践 (9)— Java客户端Jedis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zx711166/article/details/82841593

Jedis是什么

Jedis就是一个基于Java的redis-cli,遵循Redis提供的协议请求Redis实现对其操作。

Maven依赖

Jedis的Maven依赖:

<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.9.0</version>
	<type>jar</type>
	<scope>compile</scope>
</dependency>

基于SpringBoot框架下,Redis的Maven依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

Jedis直连

  • 生成一个Jedis对象,这个对象负责和指定Redis节点进行通信
Jedis jedis = new Jedis("127.0.0.1", 6379);
  • jedis执行set操作
jedis.set("hello", "world");
  • jedis执行get操作,value=“world”
String value = jedis.get("hello");

Jedis的构造函数中还有很多其他的参数,除了一下四种外还有很多其他的参数:

Jedis(String host, int port, int connectionTimeout, int soTimeout)
  • host:Redis节点的所在机器的IP。
  • port:Redis节点端口。
  • connectionTimeout:客户端连接超时。
  • soTimeout:客户端读写超时。

使用Jedis操作五种数据结构

string
// string类型写入数据,输出结果:OK
jedis.set("hello", "world");

// string类型读出数据,输出结果:world
jedis.get("hello");

// string类型自增操作,输出结果:1
jedis.incr("counter");
hash
// hash类型写入数据,输出结果:OK
jedis.hset("myhash", "f1", "v1");
jedis.hset("myhash", "f2", "v2");

//  hash类型读出数据,输出结果:{f1=v1, f2=v2}
jedis,hgetAll("myhash");
list
// list类型写入数据,输出结果:OK
jedis.rpush("mylist", "1");
jedis.rpush("mylist", "2");
jedis.rpush("mylist", "3");

//  list类型读出数据,输出结果:[1, 2, 3]
jedis.lrange("mylist", 0, -1);
set
// set类型写入数据,输出结果:OK
jedis.sadd("myset", "a");
jedis.sadd("myset", "b");
jedis.sadd("myset", "a");

// set类型读出数据,输出结果:[b, a]
jedis.smembers("myset");
zset
// zset类型写入数据,输出结果:OK
jedis.zadd("myzset", 99, "tom");
jedis.zadd("myzset", 66, "peter");
jedis.zadd("myzset", 33, "james");

// zset类型读出数据,输出结果:[[["james"], 33.0], [["peter"], 66.0], [["tom"], 99.0]]
jedis.zrangeWithScores("myzset", 0, -1);

Jedis连接池使用

Jedis直连

在这里插入图片描述

  1. 生成Jedsi对象
  2. Jedis执行命令
  3. 返回执行结果
  4. 关闭Jedis连接
Jedis连接池

在这里插入图片描述

  1. 从资源池调用Jedis对象。
  2. Jedis执行命令。
  3. 返回执行结果。
  4. 返回Jedis对象给连接池。
方案对比

在这里插入图片描述

Jedis连接池简单使用
  1. 引入JedisPool依赖的jar包。
  2. 创建JedisPool的相关相关配置。
// 设置连接池的相关参数配置
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();

// 直接使用JedisPool,将使用配置传入
JedisPool jedisPool = new JedisPool(poolConfig, "127.0.0.1", 6379);
  1. 调用JedisPool获取Jedis对象。
Jedis jedis = null;
try {
	// 1.从连接池获取jedis对象
	jedis = jedisPool.getResource();
	// 2.执行操作
	jedis.set("hello", "world");
} catch (Exception e) {
	e.printStackTrace();
} finally {
	if (jedis !=null)
	// 如果使用JedisPool,close操作不是关闭连接,代表归还连接池
	jedis.close();
}

猜你喜欢

转载自blog.csdn.net/zx711166/article/details/82841593
今日推荐