通过Jedis操作Redis
package com.yh; import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.params.SetParams; import java.util.HashMap;
import java.util.Map; public class TestRedis { private Jedis jedis; @Before
public void init() {
//连接本地的 Redis 服务
jedis = new Jedis("localhost");
System.out.println("连接成功");
} @Test
public void testList() { // 有序,链表结构
System.out.println(jedis.lpush("list1", "v1", "v2", "v3", "v4")); // 4 从左边添加
System.out.println(jedis.rpush("list2", "v1", "v2", "v3", "v4")); // 4 从右边添加
System.out.println(jedis.lrange("list1", 0, -1)); // [v4, v3, v2, v1]
System.out.println(jedis.lrange("list2", 0, -1)); // [v1, v2, v3, v4]
System.out.println(jedis.rpop("list1")); // v1 删除最后一个元素
System.out.println(jedis.lpop("list2")); // v1 删除第一个元素
} @Test
public void testSet() { // 无序,不可重复
jedis.sadd("set1", "v1", "v2", "v3", "v4");
System.out.println(jedis.smembers("set1")); // 获取所有成员
System.out.println(jedis.sismember("set1", "v1")); // 判断是否存在 jedis.sadd("set2", "v1", "v3", "v5", "v7");
System.out.println(jedis.sdiff("set1", "set2")); // 输出第一个有,后面没有的(差集)
System.out.println(jedis.sinter("set1", "set2")); // 输出两个都有的(交集)
System.out.println(jedis.sunion("set1", "set2")); // 输出两个总和(并集)
} @Test
public void testZSet() { // 有序集合
Map<String, Double> map = new HashMap<>();
map.put("k1", 20d);
map.put("k2", 30d);
map.put("k3", 15d);
map.put("k4", 25d);
System.out.println(jedis.zadd("zset", map)); // 4
System.out.println(jedis.zrange("zset", 0, -1)); // [k3, k1, k4, k2]
System.out.println(jedis.zrangeWithScores("zset", 0, -1)); // [[k3,15.0], [k1,20.0], [k4,25.0], [k2,30.0]]
} @Test
public void testHash(){
Map<String, String> map = new HashMap<>();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
System.out.println(jedis.hset("hash", "","")); // 4
System.out.println(jedis.hkeys("hash")); // [k3, k1, k4, k2]
System.out.println(jedis.hvals("hash")); // [k3, k1, k4, k2]
System.out.println(jedis.hgetAll("hash")); // [k3, k1, k4, k2]
} @Test
public void testString() {
System.out.println(jedis.set("k1", "v1")); // OK
System.out.println(jedis.get("k1")); // v1
System.out.println(jedis.del("k1")); // 1
System.out.println(jedis.append("k1", "v12")); // 3 key不存在时,append相当于set
System.out.println(jedis.append("k1", "v123")); // 7
System.out.println(jedis.get("k1")); // v12v123
System.out.println(jedis.strlen("k1")); // 7
System.out.println(jedis.mset("k1", "v1", "k2", "v2", "k3", "v3")); // OK 和逐条添加的不同点在于这是原子性操作
System.out.println(jedis.mget("k1", "k2", "k3")); // [v1,v2,v3]
System.out.println(jedis.setnx("k1", "v4")); // 0 先判断key是否存在,存在则不创建
System.out.println(jedis.setex("k1", 66, "v4")); // OK 增加过期时间(秒)
System.out.println(jedis.ttl("k1")); // 返回距离过期的剩余时间 SetParams setParams = new SetParams(); // 相当于设置一个规范,可应用到其他键值对
setParams.ex(100); // 过期时间100s
setParams.nx(); // 创建键值对之前先判断是否存在,存在则不创建
System.out.println(jedis.set("k1", "v1", setParams));
} @Test
public void testKey() {
System.out.println(jedis.keys("*")); // 查找所有key,参数为正则表达式,不推荐使用
System.out.println(jedis.exists("k1")); // 判断key是否存在
System.out.println(jedis.expire("k1", 60)); // 设值过期时间
System.out.println(jedis.incr("count")); // 相当于++
System.out.println(jedis.decr("count")); // 相当于--
System.out.println(jedis.incrBy("count", 2)); // 相当于+=2
System.out.println(jedis.decrBy("count", 2)); // 相当于-=2
} @After
public void close() {
jedis.close();
} }
通过Jedis操作Redis的更多相关文章
- Jedis操作Redis数据库
添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...
- Jedis操作Redis
Jedis操作Redis的常用封装方法 @Resource(name="jedispool") private JedisPool pool=null; /** * 设置缓存对象过 ...
- 四、Jedis操作Redis
前言: 原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...
- JAVA中通过Jedis操作Redis连接与插入简单库
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
- jedis操作redis的几种常见方式总结
Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
- Jedis操作Redis技巧详解
对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...
- Java中Jedis操作Redis与Spring的整合
Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- (转)Java中使用Jedis操作Redis
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
随机推荐
- django improperly configured
ImproperlyConfigured: You must either define the environment variable DJANGO_SETTINGS_MODULE or call ...
- 100_第一个vue-cli项目
目录 什么是vue-cli 主要的功能 需要的环境 Node.js : http://nodejs.cn/download/ Git : https://git-scm.com/downloads 安 ...
- .NET GC 实时监控 dotnet-gcmon 介绍
今天介绍一个新的诊断工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以监控到 .NET 程序的 GC, 能获取到的信息也很详细, 另外 maoni 大佬也是其中的开发者之一. ...
- [bzoj3317]First Knight
建立方程后直接高斯消元,再把0的区间找出来计算,就可以过(因为实际上这样的复杂度是5次的,且常数小)(当然这样的复杂度看上去并不太好,考虑优化)可以发现最后一行的概率都可以用上一行来表示,那么代入上一 ...
- [cf516E]Drazil and His Happy Friends
令$d=\gcd(n,m)$,存在$x$和$y$使得$xn+i=ym+j$的充要条件是$i\equiv j(mod \ d)$,因此将$xd+i$(其中$0\le i<d$)作为一组,共有$d$ ...
- 深度学习,机器学习神器,白嫖免费GPU
深度学习,机器学习神器,白嫖免费GPU! 最近在学习计算机视觉,自己的小本本没有那么高的算力,层级尝试过Google的Colab,以及移动云的GPU算力,都不算理想.如果数据集比较小,可以试试Cola ...
- 洛谷 P3714 - [BJOI2017]树的难题(点分治)
洛谷题面传送门 咦?鸽子 tzc 竟然来补题解了?incredible( 首先看到这样类似于路径统计的问题我们可以非常自然地想到点分治.每次我们找出每个连通块的重心 \(x\) 然后以 \(x\) 为 ...
- R数据科学-2
R数据科学(R for Data Science) Part 2:数据处理 导入-->整理-->转换 ------------------第7章 使用tibble实现简单数据框------ ...
- R绘图布局包 customLayout
今天介绍一个R画图布局的包,地址如下: https://github.com/zzawadz/customLayout https://www.customlayout.zstat.pl/index. ...
- Linux服务器I/O性能分析-3
一.通过脚本分析IO的读/写数量.最大延迟.延迟的分布情况.块大小及数量 #!/bin/sh # # File Name : count_io.sh # Time : 2020-07-29-11:24 ...