java操作redis的操作_Java基础知识整理之操作Redis(三)

这篇博客通过Java展示了如何使用Jedis库操作Redis中的String、Map和List数据类型。包括设置、获取、拼接、删除String数据,增删查改Map数据,以及List的插入和获取等基本操作。详细源码和执行结果说明了每个步骤的实现和效果。
摘要由CSDN通过智能技术生成

Java操作Redis之操作数据

1.操作 String

1.1 源码

public void stringOperator(){

//添加数据

jedis.set("name", "Wayfreem");// 添加一个 key 为 name, 然后 value 为 Wayfreem

System.out.println(jedis.get("name"));// 执行结果:xinxin

//拼接指定的key

jedis.append("name", " is my name"); //在 name 值的后继续追加 字符串

System.out.println(jedis.get("name"));

// 删除某个键

jedis.del("name");

System.out.println("删除name 键之后:" + jedis.get("name"));

jedis.mset("name", "Wayfreem", "age", "23", "qq", "5234XXXX"); // 设置多个键值对

//进行加1操作

jedis.incr("age");

System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"+ jedis.get("qq"));

}

1.2 执行的结果

5ea84e66d81138624bdb733b75f8fdf2.png

1.3 在 redis-cli 中查看

f9f488b3743916661b0e6bdee210433a.png

2.操作 Map

2.1 源码

public void mapOperator(){

//添加数据

Map map = new HashMap();

map.put("name", "Wayfreem");

map.put("age", "23");

map.put("qq", "5234XXXX");

//添加一个 user 的 key, value 为 map

jedis.hmset("user", map);

//获取对应key下的value,用数组返回

List rsmap = jedis.hmget("user", "name", "age", "qq");

System.out.println(rsmap);

// 删除map中的某个键值, 第一个参数是 map(现在的user),第二个参数是 map 中的 key

jedis.hdel("user","age");

System.out.println(jedis.hmget("user","age")); // 删除了,返回null

System.out.println(jedis.hlen("user")); // 返回key为user的键中存放的值的个数2

System.out.println(jedis.exists("user")); // 是否存在key为user的记录 返回true

System.out.println(jedis.hkeys("user")); // 返回map对象中的所有key

System.out.println(jedis.hvals("user")); // 返回map对象中的所有value

//循环出所有的key user下面的所有的 K-V

Iterator iter = jedis.hkeys("user").iterator();

while (iter.hasNext()) {

String key = iter.next();

System.out.println(key + ":" + jedis.hmget("user", key));

}

}

2.2 执行结果

9dd4e7306b9e241796b11f993bfd3690.png

2.3 redis-cli 中查看

87837a214487b04ec9f5b846ca1d3a07.png

3.操作List

3.1 源码

public void listOperator() {

//删除指定的key

jedis.del("framework");

System.out.println(jedis.lrange("framework", 0, -1)); //返回值为 [] 因为没有数据

/* Redis Lpush 命令将一个或多个值插入到列表头部。

* 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。

* 当 key 存在但不是列表类型时,返回一个错误。

*/

// 先向key framework中存放三条数据

jedis.lpush("framework", "angular");

jedis.lpush("framework", "vue");

jedis.lpush("framework", "react");

// 再取出所有数据jedis.lrange是按范围取出,

// 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有

System.out.println(jedis.lrange("framework", 0, -1));

/*

* Redis RPUSH命令插入所有指定的值,在存储在列表的key尾部。

* 如果键不存在,则执行压栈操作之前创建的空列表。

* 当key持有的值不是列表,则返回一个错误。

*/

jedis.del("framework");

jedis.rpush("framework", "angular");

jedis.rpush("framework", "vue");

jedis.rpush("framework", "react");

System.out.println(jedis.lrange("framework", 0, -1));

}

3.2 执行结果

a1cc783f0d5ebafa6fa91ab654f525ad.png

3.3 redis-cli 中查看

c16b3d0d97f499cda9384abcb3a83c38.png

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

import redis.clients.jedis.Jedis;

public class RedisStudy {

//声明 redis 对象

private static Jedis jedis;

private String host = "127.0.0.1"; //测试地址

private int port = 6379; //端口

private String pwd = "foobared"; //密码

/**

* 连接redis

*/

public void getJedis() {

try {

jedis = new Jedis(host, port); // 连接redis服务器

String auth = jedis.auth(pwd); // 权限认证

System.out.println("connet the redis:"+auth);

} catch (Exception e) {

System.out.println("缓存链接错误");

}

}

/**

* 清除所有的缓存

*/

public void ClearDB() {

String str = jedis.flushDB();

System.out.println("flush all Keys:" + str);

}

/**

* 找到所有的KEY

*/

public void findAllKeys(){

Set set = jedis.keys("*");

for (String str : set) {

System.out.println(str);

}

}

/**

* 操作String

* 添加数据 使用 set

* 拼接指定 key 使用 append

* 删除指定的key 使用 del

* 对指定的 key 加 1操作 使用 incr

*/

public void stringOperator(){

//添加数据

jedis.set("name", "Wayfreem");// 添加一个 key 为 name, 然后 value 为 Wayfreem

System.out.println(jedis.get("name"));// 执行结果:xinxin

//拼接指定的key

jedis.append("name", " is my name"); //在 name 值的后继续追加 字符串

System.out.println(jedis.get("name"));

// 删除某个键

jedis.del("name");

System.out.println("删除name 键之后:" + jedis.get("name"));

jedis.mset("name", "Wayfreem", "age", "23", "qq", "5234XXXX"); // 设置多个键值对

//进行加1操作

jedis.incr("age");

System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-"+ jedis.get("qq"));

}

/**

* 操作 Map redis 上面叫做 hash

* 添加数据 使用 hmset

* 获取数据 使用 hmget

* 判断key 对应的个数 使用 hlen

* 判断key 是否存在 使用 exists

* 获取 map 中所有的 key 使用 hkeys

* 获取 map 中所有的 key的 value 使用 hvals

*/

public void mapOperator(){

//添加数据

Map map = new HashMap();

map.put("name", "Wayfreem");

map.put("age", "23");

map.put("qq", "5234XXXX");

//添加一个 user 的 key, value 为 map

jedis.hmset("user", map);

//获取对应key下的value,用数组返回

List rsmap = jedis.hmget("user", "name", "age", "qq");

System.out.println(rsmap);

// 删除map中的某个键值, 第一个参数是 map(现在的user),第二个参数是 map 中的 key

jedis.hdel("user","age");

System.out.println(jedis.hmget("user","age")); // 删除了,返回null

System.out.println(jedis.hlen("user")); // 返回key为user的键中存放的值的个数2

System.out.println(jedis.exists("user")); // 是否存在key为user的记录 返回true

System.out.println(jedis.hkeys("user")); // 返回map对象中的所有key

System.out.println(jedis.hvals("user")); // 返回map对象中的所有value

//循环出所有的key user下面的所有的 K-V

Iterator iter = jedis.hkeys("user").iterator();

while (iter.hasNext()) {

String key = iter.next();

System.out.println(key + ":" + jedis.hmget("user", key));

}

}

/**

* list操作

* 添加数据 使用 lpush 或者 rpush

* 获取数据 使用 lrange 是按照一定的范围获取

*/

public void listOperator() {

//删除指定的key

jedis.del("framework");

System.out.println(jedis.lrange("framework", 0, -1)); //返回值为 [] 因为没有数据

/* Redis Lpush 命令将一个或多个值插入到列表头部。

* 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。

* 当 key 存在但不是列表类型时,返回一个错误。

*/

// 先向key framework中存放三条数据

jedis.lpush("framework", "angular");

jedis.lpush("framework", "vue");

jedis.lpush("framework", "react");

// 再取出所有数据jedis.lrange是按范围取出,

// 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有

System.out.println(jedis.lrange("framework", 0, -1));

/*

* Redis RPUSH命令插入所有指定的值,在存储在列表的key尾部。

* 如果键不存在,则执行压栈操作之前创建的空列表。

* 当key持有的值不是列表,则返回一个错误。

*/

jedis.del("framework");

jedis.rpush("framework", "angular");

jedis.rpush("framework", "vue");

jedis.rpush("framework", "react");

System.out.println(jedis.lrange("framework", 0, -1));

}

public static void main(String[] args) {

//声明当前类

RedisStudy rs = new RedisStudy();

rs.getJedis();

rs.listOperator();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值