「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」
Redis在Java中Jedis的操作(Key/String操作)
什么是jedis是Redis官方推荐的java连接开发工具!使用java操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!
1、导入对应的依赖
<dependencies>
<!-- 导入jedis包 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
2、编码测试:
- 连接数据库
- 操作命令
- 断开连接
package com.zxy;
import redis.clients.jedis.Jedis;
public class TestPing {
public static void main(String[] args) {
//1、new Jedis 对象即可
/*
new Jedis("127.0.0.1",6379);
// 如果 Redis 服务设置了密码,需要下面这行,没有就不需要
// jedis.auth("******");
第一个参数:访问地址
第二个参数:端口号
*/
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
}
}
输出:
对key操作的命令
-
清空所处数据库数据:
jedis.flushDB -
判断键值对是否存在:
jedis.exists -
设置键值对:
jedis.set -
获取所处数据库中所有键:
jedis.keys -
删除指定键值对数据:
jedis.del -
判断指定键值对类型:
jedis.type -
获取指定键值对的值:
jedis.get -
按索引查询:
jedis.select -
查询数据库中key的数目:
jedis.dbSize -
清空所有数据库数据:
jedis.flushAll -
随机一个key:
jedis.randomKey -
重命名key:
jedis.rename
public static void main(String[] args) {
//1、new Jedis 对象即可
/*
new Jedis("127.0.0.1",6379);
第一个参数:访问地址
第二个参数:端口号
*/
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
System.out.println("清空数据:"+jedis.flushDB());
System.out.println("判断某个键是否存在:"+jedis.exists( "username"));
System.out.println("新增< 'username' , 'kuangshen'>的键值对:"+jedis.set( "username","xuyang"));
System.out.println("新增< 'password' , ' password'>的键值对:"+jedis.set( "password" , "password"));
System.out.print("系统中所有的键如下: ");
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());
}
对String操作的命令
-
未指定键的字符串后追加字符:
jedis.append -
批量设置键值对:
jedis.mset -
批量获取键值对:
jedis.mget -
批量设置键值对:
jedis.setnx;不存在成功,否则报错 -
截取指定范围字符串值:
jedis.getrange
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
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" , "value1" , "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", "key2GetSet"));
System.out.println(jedis.get ( "key2" ));
System.out.println("获得key2的值的字串:"+jedis.getrange("key2",2,4));
}
明天继续加油!