NOSQL非关系型数据库-Jedis客户端

概念

Jedis是一款Java操作的redis数据库的工具

使用步骤

1. 下载Jedis的jar包

2. 使用测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.web.Jedis.test;
import org.junit.Test;
import redis.clients.jedis.Jedis;

/**
* @author OldAZ-PC
* jedis的测试类
*/
public class JedisTest {

/**
* 快速入门
* */
@Test
public void test1(){
//1.获取连接
Jedis jedis = new Jedis("localhost", 6379);
//2.操作
jedis.set("username","shangsan");
//3.关闭连接
jedis.close();
}
}

3. Java代码执行前:

4. Java代码执行后

Jedis操作各种redis中的数据结构

1. 字符串类型 string

set
get

2. 哈希类型 hash

map 格式

hset
hget

3. 列表类型 list

linkedlist格式。支持重复元素

lpush/rpush
lpop/rpop

4.集合类型 set

不允许重复元素

sadd
srem

5. 有序集合类型 sortedset

不允许重复元素,且元素有序

zadd
zrem

数据结构操作代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
package com.web.Jedis.test;


import org.junit.Test;
import redis.clients.jedis.Jedis;

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

/**
* @author OldAZ-PC
* jedis的测试类
*/
public class JedisTest {

/**
* 快速入门
* */
@Test
public void test1(){
//1.获取连接
Jedis jedis = new Jedis("localhost", 6379);
//2.操作
jedis.set("username","shangsan");
//3.关闭连接
jedis.close();
}


/**
* String数据
* */
@Test
public void test2(){
//1.获取连接
//如果使用空参构造,默认值 “localhost”,6379
Jedis jedis = new Jedis("localhost", 6379);
//2.操作
jedis.set("username","shangsan");
System.out.println(jedis.get("username"));

//可以使用setext()方式储存过期时间的key value
// 将actived:hehe 键值对存入redis,并且20秒以后自动删除键值对
jedis.setex("actived",20,"hehe");


//3.关闭连接
jedis.close();
}


/**
* Hash数据结构
* */
@Test
public void test3(){
//1.获取连接
//如果使用空参构造,默认值 “localhost”,6379
Jedis jedis = new Jedis("localhost", 6379);
//2.操作

//存储hash
jedis.hset("user","name","lisi");
jedis.hset("user","age","24");
jedis.hset("user","gender","male");

//获取 hash
System.out.println( jedis.hget("user","name"));

//获取hah的所有map中的元素
Map<String, String> user = jedis.hgetAll("user");
System.out.println(user);
//遍历
Set<String> keys = user.keySet();
for (String key : keys) {
//获取value
String value = user.get(key);
System.out.println(key+":"+value);

}
//3.关闭连接
jedis.close();
}


/**
* list数据结构
* */
@Test
public void test4(){
//1.获取连接
//如果使用空参构造,默认值 “localhost”,6379
Jedis jedis = new Jedis();
//2.操作

//存储数据
jedis.lpush("mylist","a","b","c","d");//从左边存
jedis.rpush("mylist","a","b","c","d");//从右边存
//获取数据
List<String> mylist = jedis.lrange("mylist", 0, -1);
System.out.println(mylist);

//list弹出
String lpop = jedis.lpop("mylist");
System.out.println(lpop);

String rpop = jedis.rpop("mylist");
System.out.println(rpop);

//3.关闭连接
jedis.close();
}


/**
* set数据结构
* */
@Test
public void test5(){
//1.获取连接
//如果使用空参构造,默认值 “localhost”,6379
Jedis jedis = new Jedis();
//2.操作

//存储数据
jedis.sadd("myset","java","php","c++");
//获取数据
System.out.println(jedis.smembers("myset"));

//3.关闭连接
jedis.close();
}


/**
* sortedset数据结构
* */
@Test
public void test6(){
//1.获取连接
//如果使用空参构造,默认值 “localhost”,6379
Jedis jedis = new Jedis();
//2.操作

//存储数据
jedis.zadd("mysortedset",1,"老赵");
jedis.zadd("mysortedset",2,"老钱");
jedis.zadd("mysortedset",3,"老孙");
jedis.zadd("mysortedset",4,"老王");
//获取数据
System.out.println(jedis.zrange("mysortedset",0,-1));

//3.关闭连接
jedis.close();
}
}

Jedis连接池

JedisPool

连接池的使用

1. 创建JedisPool

2. 调用getResource()方法获取Jedis连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* jedis连接池的使用
*/
@Test
public void test7() {
//0.创建一个配置对象
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50);
config.setMaxIdle(50);


//1.创建Jedis连接池对象
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);

//2.获取连接
Jedis jedis = jedisPool.getResource();

//3.使用
jedis.set("hehe", "haha");

//关闭,归还到连接池中
jedis.close();
}

3. config的详细配置:

连接池工具类

  • JedisPool工具类
  • 加载配置文件,配置连接池参数
  • 提供获取连接的方法

JedisPoolUtils代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.web.Jedis.util;


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
* JedisPool工具类
* 加载配置文件,配置连接池参数
*提供获取连接的方法
*/
public class JedisPoolUtils {
private static JedisPool jedisPool;

static {
//读取配置文件
InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
//创建properties对象
Properties pro = new Properties();

//关联文件
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}

//获取数据,设置到config中
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));

//初始化Jedispool
jedisPool = new JedisPool(config,pro.getProperty("host"),Integer.parseInt(pro.getProperty("port")));
}

/*获取连接的方法*/
public static Jedis getJedis(){
return jedisPool.getResource();
}
}

测试工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* jedis连接池工具类的使用
*/
@Test
public void test8() {
//通过连接池工具类获取
Jedis jedis = JedisPoolUtils.getJedis();

//使用
jedis.set("hello", "world");

//关闭,归还连接池

jedis.close();
}
文章目录
  1. 1. 概念
  2. 2. 使用步骤
    1. 2.1. 1. 下载Jedis的jar包
    2. 2.2. 2. 使用测试
    3. 2.3. 3. Java代码执行前:
    4. 2.4. 4. Java代码执行后
  3. 3. Jedis操作各种redis中的数据结构
    1. 3.1. 1. 字符串类型 string
    2. 3.2. 2. 哈希类型 hash
    3. 3.3. 3. 列表类型 list
    4. 3.4. 4.集合类型 set
    5. 3.5. 5. 有序集合类型 sortedset
  4. 4. 数据结构操作代码
  5. 5. Jedis连接池
  6. 6. 连接池的使用
    1. 6.1. 1. 创建JedisPool
    2. 6.2. 2. 调用getResource()方法获取Jedis连接
    3. 6.3. 3. config的详细配置:
  7. 7. 连接池工具类
  8. 8. JedisPoolUtils代码
  9. 9. 测试工具类
,