文章目录

前言

本篇博客是Redis的学习笔记,若文章中出现相关问题,请指出!

所有博客文件目录索引:​​博客目录索引(持续更新)​

一、Jedis使用

1.1、基本使用

引入依赖

<!--   jedis     -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.1</version><!--版本号可根据实际情况填写-->
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>

Jedis是一个高性能的开源Java客户端,是Redis官方推荐的Java开发工具,其封装了一系列的redis相关的执行命令可供我们进行使用。

class Test {

public static void main(String[] args) {
Jedis jedis = new Jedis("10.23.134.28", 6379);
System.out.println(jedis);
//测试在redis中五种数据类型的存与取
// testString(jedis);
// testHash(jedis);
// testList(jedis);
// testSet(jedis);
testSortedset(jedis);
}

/**
* String存取
*
* @param jedis jedis连接redis对象
*/
public static void testString(Jedis jedis) {
jedis.set("username", "changlu");
jedis.set("age", "18");
}

/**
* hash存取
*
* @param jedis jedis连接redis对象
*/
public static void testHash(Jedis jedis) {
//存
jedis.hset("mytestHash", "username", "changlu");
jedis.hset("mytestHash", "age", "18");
//取值
Map<String, String> hash = jedis.hgetAll("mytestHash");
hash.forEach((key, value) -> {
System.out.println("key:" + key + ",value=" + value);
});
}

/**
* list存取
*
* @param jedis jedis连接redis对象
*/
public static void testList(Jedis jedis) {
//存:往链表的左侧存储
Long pushLength = jedis.lpush("mytestlist", "listColumn1", "listColumn2");
System.out.println("存储的长度:"+pushLength);
//取:实现队列,从右边取
Long mtl = jedis.llen("mytestlist");
for (int i = 0; i < mtl; i++) {
System.out.println(jedis.rpop("mytestlist"));
}
}

/**
* set存取
*
* @param jedis jedis连接redis对象
*/
public static void testSet(Jedis jedis) {
//存:对于重复的属性不会存储
Long addLength = jedis.sadd("mytestSet", "changlu", "liner","liner","changlu");
System.out.println("存储的长度:"+addLength);
//取
Set<String> mytestSet = jedis.smembers("mytestSet");
Stream.of(mytestSet.toArray()).forEach(System.out::println);
}

/**
* 有序列表Sortedset
* @param jedis jedis连接redis对象
*/
public static void testSortedset(Jedis jedis) {
//存:对于重复的属性不会存储
jedis.zadd("mysortedset", 100, "warren");
jedis.zadd("mysortedset",20,"zhangsan");
jedis.zadd("mysortedset",50,"lisi");
//取:默认zrange是按照升序
Set<String> mysortedset1 = jedis.zrange("mysortedset", 0, -1);
Stream.of(mysortedset1.toArray()).forEach(System.out::println);
}


}

①String测试

Redis应用 01、连接redis开发工具jedis_json

②Hash测试

Redis应用 01、连接redis开发工具jedis_json_02

Redis应用 01、连接redis开发工具jedis_json_03

③List测试

Redis应用 01、连接redis开发工具jedis_缓存_04

Redis应用 01、连接redis开发工具jedis_缓存_05

④Set测试

Redis应用 01、连接redis开发工具jedis_redis_06

Redis应用 01、连接redis开发工具jedis_连接池_07

⑤SortedSet测试

Redis应用 01、连接redis开发工具jedis_redis_08

Redis应用 01、连接redis开发工具jedis_连接池_09




1.2、事务


命令


Redis应用 01、连接redis开发工具jedis_缓存_10




java实现


public static void main(String[] args) {
Jedis jedis = new Jedis("localhost",6379);
System.out.println(jedis);
JSONObject jsonObject = new JSONObject();
jsonObject.put("username","changlu");
jsonObject.put("password","123456");
String result = jsonObject.toJSONString();
jedis.set("changlu","nihao");
//创建事务,之后执行的一系列操作都要基于Transaction对象
Transaction multi = jedis.multi();
multi.flushDB();
try {
multi.set("user1",result);
multi.set("user2",result);
int i = 1/0;
multi.exec();//事务提交
}catch (Exception e){
multi.discard(); //放弃事务
e.printStackTrace();
}finally {
System.out.println("获取数据:");
System.out.println(multi.get("user1"));
System.out.println(multi.get("user2"));
//关闭连接
jedis.close();
}
}

Redis应用 01、连接redis开发工具jedis_json_11




二、JedisPool连接池获取

//从jedis连接池中获取一个连接
Jedis jedis = new JedisPool("localhost", 6379).getResource();




参考文章

[1]. ​​Redis快速入门(究极新手教程)​

[2]. ​​Jedis源码解析(Transation事务)​




整理者:长路 时间:2021.8.20

[1]. ​​Redis快速入门(究极新手教程)​

[2]. ​​Jedis源码解析(Transation事务)​




整理者:长路 时间:2021.8.20