第125天学习打卡(Redis Jedis 常用的API 事务 springboot整合)
Posted doudoutj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第125天学习打卡(Redis Jedis 常用的API 事务 springboot整合)相关的知识,希望对你有一定的参考价值。
Jedis
我们要使用Java来操作Redis
什么是Jedis 是Redis官方推荐的Java连接的开发工具,使用Java操作Redis中间件!如果使用Java操作redis,一定要对Jedis十分熟悉。
测试
在java中建立空项目要注意把这几个地方进行配置:
1.导入对应 的依赖
pom.xml
<dependencies>
<!-- 导入jedis的包-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.0</version>
</dependency>
<!-- 导入fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
2.编码测试:
- 连接数据库
- 操作命令
- 断开连接
测试连接:
首先开启redis:
然后在IDEA中测试连接:
package com.kuang;
import redis.clients.jedis.Jedis;
public class TestPing {
public static void main(String[] args) {
//1. new Jedis
Jedis jedis = new Jedis("127.0.0.1",6379);
//jedis 所有的命令就是我们之前学习的所有指令!
System.out.println(jedis.ping());
}
}
输出为:PONG则表示连接成功!
常用的API
Key
package com.kuang;
import redis.clients.jedis.Jedis;
import java.util.Set;
public class TestKey {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println("清空数据:" + jedis.flushDB());
System.out.println("判断某个键是否存在:" + jedis.exists("username"));
System.out.println("新增<'username', 'kuangshen'>的键值对:" + jedis.set("username","kuangshen"));
System.out.println("新增<'password','password'>的键值对:" + jedis.set("password","password"));
System.out.println("系统中的所有的键如下:");
Set<String> keys = jedis.keys("*");
System.out.println(keys);
System.out.println("删除键password:" + jedis.del("password"));
System.out.println("判断建password是否存在:" + jedis.exists("password"));
System.out.println("查看键username所存储的值的类型:" + jedis.type("username"));
System.out.println("随机返回key空间的一个:" + jedis.randomKey());
System.out.println("重命名key:" + jedis.rename("username", "name"));
System.out.println("取出改后的name:" + jedis.get("name"));
System.out.println("按索引查询:" + jedis.select(0));
System.out.println("删除当前选择数据库中的所有key:" + jedis.flushDB());
System.out.println("返回当前数据库中的key的数目:" + jedis.dbSize());
System.out.println("删除所有数据库中的所有key:" + jedis.flushAll());
}
}
输出的结果:
清空数据:OK
判断某个键是否存在:false
新增<'username', 'kuangshen'>的键值对:OK
新增<'password','password'>的键值对:OK
系统中的所有的键如下:
[password, username]
删除键password:1
判断建password是否存在:false
查看键username所存储的值的类型:string
随机返回key空间的一个:username
重命名key:OK
取出改后的name:kuangshen
按索引查询:OK
删除当前选择数据库中的所有key:OK
返回当前数据库中的key的数目:0
删除所有数据库中的所有key:OK
Process finished with exit code 0
String
package com.kuang;
import redis.clients.jedis.Jedis;
import java.util.concurrent.TimeUnit;
public class TestString {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
System.out.println("=================增加数据=====================");
System.out.println(jedis.set("key1", "value1"));
System.out.println(jedis.set("key2", "value2"));
System.out.println(jedis.set("key3", "value3"));
System.out.println("删除键key2:" + jedis.del("key2"));
System.out.println("获取键key2:" + jedis.get("key2"));
System.out.println("修改key1:" + jedis.set("key1", "value1Changed"));
System.out.println("获取key1的值:" + jedis.get("key1"));
System.out.println("在key3后面加入值:" + jedis.append("key3", "End"));
System.out.println("key3的值:" + jedis.get("key3"));
System.out.println("增加多个键值对:" + jedis.mset("key01", "value01", "key02", "value02", "key03", "value03"));
System.out.println("获取多个键值对:" + jedis.mget("key01", "key02", "key03"));
System.out.println("获取多个键值对:" + jedis.mget("key01", "key02", "key03", "key04"));
System.out.println("删除多个键值对:" + jedis.del("key01", "key02"));
System.out.println("获取多个键值对:" + jedis.mget("key01", "key02", "key03"));
jedis.flushDB();
System.out.println("===============新增键值对防止覆盖原先值======================");
System.out.println(jedis.setnx("key1", "value1"));
System.out.println(jedis.setnx("key2", "value2"));
System.out.println(jedis.setnx("key2", "value2-new"));
System.out.println(jedis.get("key1"));
System.out.println(jedis.get("key2"));
System.out.println("==================新增键值对并设置有效时间===================");
System.out.println(jedis.setex("key3", 2, "value3"));
System.out.println(jedis.get("key3"));
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(jedis.get("key3"));
System.out.println("=================获取原值,更新为新值==============");
System.out.println(jedis.getSet("key2", "ke2GetSet"));
System.out.println(jedis.get("key2"));
System.out.println("获得key2的值的字符串:" + jedis.getrange("key2", 2, 4));
}
}
输出结果:
=================增加数据=====================
OK
OK
OK
删除键key2:1
获取键key2:null
修改key1:OK
获取key1的值:value1Changed
在key3后面加入值:9
key3的值:value3End
增加多个键值对:OK
获取多个键值对:[value01, value02, value03]
获取多个键值对:[value01, value02, value03, null]
删除多个键值对:2
获取多个键值对:[null, null, value03]
===============新增键值对防止覆盖原先值======================
1
1
0
value1
value2
==================新增键值对并设置有效时间===================
OK
value3
null
=================获取原值,更新为新值==============
value2
ke2GetSet
获得key2的值的字符串:2Ge
Process finished with exit code 0
List
package com.kuang;
import redis.clients.jedis.Jedis;
public class TestList {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
System.out.println("====================添加一个list================");
jedis.lpush("collections", "ArrayList", "Vector", "Stack", "HashMap", "WeakHashMap", "LinkedHashMap", "EnumMap");
jedis.lpush("collections", "HashSet");
jedis.lpush("collections", "TreeSet");
jedis.lpush("collections", "TreeMap");
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("collections区间0-3的元素:" + jedis.lrange("collections", 0, 3));
System.out.println("==========================");
//删除列表指定的值,第二个参数为删除个数(有重复时),后add进去的值先被删除,类似于出栈
System.out.println("删除指定元素的个数:" + jedis.lrem("collections", 2, "HashMap"));
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("删除下标0-3区间之外的元素:" + jedis.ltrim("collections", 0, 3));
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("collections列表出栈(左端):" + jedis.lpop("collections"));
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("collections添加内容, 从列表右端,与lpush相对应:" + jedis.rpush("collections", "kuangshenshuo"));
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("collections列表出栈(右端):" + jedis.rpop("collections"));
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("修改collections指定下标1的内容:" + jedis.lset("collections", 1,"LinkedHashMap"));
System.out.println("collections的内容:" + jedis.lrange("collections", 0, -1));
System.out.println("=======================================");
System.out.println("collections的长度:" + jedis.llen("collections"));
System.out.println("获取collections下标为2的元素:" + jedis.lindex("collections", 2));
System.out.println("===========================");
jedis.lpush("sortedList", "3", "6", "2", "5", "7", "0", "4");
System.out.println("sortedList排序前:" + jedis.lrange("sortedList", 0, -1));
System.out.println(jedis.sort("sortedList"));
System.out.println("sortedList排序后:" + jedis.lrange("sortedList", 0, -1));
第277天学习打卡(知识点回顾, springboot redis自动配置)
第220天学习打卡(Redis复习 list set zset)
第126天学习打卡(Redis redis.conf详解 Redis持久化 RDB AOF)
第221天学习打卡(MySQL的日志文件 Redis备份是如何执行的)