使用
java
操作redis
-
jedis
:redis
官方推荐的java
连接开发工具。使用java
操作redis
的一个中间件,是个jar
包。 -
连接测试:
导入依赖<!-- 导入 jedis 包 --> <dependencies> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.3</version> </dependency> <!-- 导入 fastjson 包 --> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> </dependencies>
TestPing.java
进行测试:
1、连接数据库
2、操作命令
3、断开连接public static void main(String[] args) { //1.创建jedis对象 Jedis jedis = new Jedis("IP", 6379); //1.redis服务必须关闭防火墙 2.redis服务必须开启远程连接 jedis.select(0);//选择操作的库默认0号库 //2.执行相关操作 //.... //3.释放资源 jedis.close(); }
//TestPing.java package com.demo; import redis.clients.jedis.Jedis; public class TestPing { public static void main(String[] args) { // Jedis jedis = new Jedis("127.0.0.1", 6379); Jedis jedis = new Jedis("IP", 6379); // jedis.auth("密码"); String response = jedis.ping(); System.out.println(response); // PONG } }
注意点:redis 配置远程连接
1、在连接远程服务器时,要提前把安全组的端口开放,需要修改redis
配置文件bind 127.0.0.1
把这句注释掉
2、同时为了安全需要添加验证requirepass xxx
3、代码中通过对应的auth
属性设置密码连接成功
常用的
API
- 操作
key
相关API
private Jedis jedis;
@Before
public void before(){
this.jedis = new Jedis("IP", 6379);
}
@After
public void after(){
jedis.close();
}
//测试key相关
@Test
public void testKeys(){
//删除一个key
jedis.del("name");
//删除多个key
jedis.del("name","age");
//判断一个key是否存在exits
Boolean name = jedis.exists("name");
System.out.println(name);
//设置一个key超时时间 expire pexpire
Long age = jedis.expire("age", 100);
System.out.println(age);
//获取一个key超时时间 ttl
Long age1 = jedis.ttl("newage");
System.out.println(age1);
//随机获取一个key
String s = jedis.randomKey();
//修改key名称
jedis.rename("age","newage");
//查看可以对应值的类型
String name1 = jedis.type("name");
System.out.println(name1);
String maps = jedis.type("maps");
System.out.println(maps);
}
- 操作
String
相关API
,更多相关命令,查看
//测试String相关
@Test
public void testString(){
//set
jedis.set("name","小陈");
//get
String s = jedis.get("name");
System.out.println(s);
//mset
jedis.mset("content","好人","address","海淀区");
//mget
List<String> mget = jedis.mget("name", "content", "address");
mget.forEach(v-> System.out.println("v = " + v));
//getset
String set = jedis.getSet("name", "小明");
System.out.println(set);
//............
}
- 操作
List
相关API
,更多相关命令,查看
//测试List相关
@Test
public void testList(){
//lpush
jedis.lpush("names1","张三","王五","赵柳","win7");
//rpush
jedis.rpush("names1","xiaomingming");
//lrange
List<String> names1 = jedis.lrange("names1", 0, -1);
names1.forEach(name-> System.out.println("name = " + name));
//lpop rpop
String names11 = jedis.lpop("names1");
System.out.println(names11);
//llen
jedis.linsert("lists", BinaryClient.LIST_POSITION.BEFORE,"xiaohei","xiaobai");
//........
}
- 操作
Set
的相关API
,更多相关命令,查看
//测试SET相关
@Test
public void testSet(){
//sadd
jedis.sadd("names","zhangsan","lisi");
//smembers
jedis.smembers("names");
//sismember
jedis.sismember("names","xiaochen");
//...
}
- 操作
ZSet
相关API
,更多相关命令,查看
//测试ZSET相关
@Test
public void testZset(){
//zadd
jedis.zadd("names",10,"张三");
//zrange
jedis.zrange("names",0,-1);
//zcard
jedis.zcard("names");
//zrangeByScore
jedis.zrangeByScore("names","0","100",0,5);
//..
}
- 操作
Hash
相关API
,更多相关命令,查看
//测试HASH相关
@Test
public void testHash(){
//hset
jedis.hset("maps","name","zhangsan");
//hget
jedis.hget("maps","name");
//hgetall
jedis.hgetAll("mps");
//hkeys
jedis.hkeys("maps");
//hvals
jedis.hvals("maps");
//....
}
-
jedis
事务操作
// TestTx.java 事务操作练习
package com.demo;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class TestTx {
public static void main(String[] args) {
Jedis jedis = new Jedis("IP", 6379);
jedis.flushDB();
JSONObject jsonObject = new JSONObject();
jsonObject.put("hello", "world");
jsonObject.put("name", "li");
// 开启事务
Transaction multi = jedis.multi();
String result = jsonObject.toJSONString();
// jedis.watch(result)
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(jedis.get("user1"));
System.out.println(jedis.get("user2"));
jedis.close(); // 关闭链接
}
}
}
- 正常代码显示
- 异常代码显示
网友评论