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 执行的结果
1.3 在 redis-cli 中查看
2.操作 Map
2.1 源码
public void mapOperator(){
//添加数据
Map<String, String> map = new HashMap<String, String>();
map.put("name", "Wayfreem");
map.put("age", "23");
map.put("qq", "5234XXXX");
//添加一个 user 的 key, value 为 map
jedis.hmset("user", map);
//获取对应key下的value,用数组返回
List<String> 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<String> iter = jedis.hkeys("user").iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key + ":" + jedis.hmget("user", key));
}
}
2.2 执行结果
2.3 redis-cli 中查看
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 执行结果
3.3 redis-cli 中查看
附
结合Java基础知识整理之操作Redis(二)中的源码
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<String> 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<String, String> map = new HashMap<String, String>();
map.put("name", "Wayfreem");
map.put("age", "23");
map.put("qq", "5234XXXX");
//添加一个 user 的 key, value 为 map
jedis.hmset("user", map);
//获取对应key下的value,用数组返回
List<String> 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<String> 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();
}
}
注
Rdies 教程的中文网:http://www.redis.net.cn/tutor...
Rdies 官网:https://redis.io/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。