通过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 ...
随机推荐
- Linux mem 2.5 Buddy 内存回收机制
文章目录 1. 简介 2. LRU 组织 2.1 LRU 链表 2.2 LRU Cache 2.3 LRU 移动操作 2.3.1 page 加入 LRU 2.3.2 其他 LRU 移动操作 3. LR ...
- The Ninth Week (Lucklyzpp)
The Ninth Week (Lucklyzpp) 1.简述DNS服务器原理,并搭建主-辅服务器. [10:36:39 root@lucklyzpp ~]#vim /etc/named.conf ...
- 用户登录成功后重新获取新的Session
HttpSession session = request.getSession(); // 用来存储原sessionde的值 ConcurrentHash ...
- jQuery css()选择器使用说明
css选择器只是jquery中的一个功能罢了,下面我来给各位朋友详细介绍jQuery css()选择器使用方法与说明详解,有需要了解学习的同学可参考. CSS操作有一个重要的方法:CSS() CSS( ...
- .NET6运行时动态更新限流阈值
昨天博客园撑不住流量又崩溃了,很巧正在编写这篇文章,于是产生一个假想:如果博客园用上我这个限流组件会怎么样呢? 用户会收到几个429错误,并且多刷新几次就看到了内容,不会出现完全不可用. 还可以降低查 ...
- Handler处理器&&使用代理服务器urllib.request.ProxyHandler
urllib.request.urlopen(url) 不能定制请求头 urllib.request.Request(url,headers,data) 可以定制请求头 Handler 定制更高级的 ...
- filter筛选数组
和map()类似,array的filter也接收一个函数 和map()不同的是,filter把传入的函数依次作用于每个函数,然后根据返回TRUE还是FALSE来做决定保留还是舍弃该元素 例如,删除一个 ...
- [loj3501]图函数
$f(i,G)_{x}$为$x$对$i$是否有贡献,即在枚举到$x$时,$i$与$x$是否强连通 事实上,$f(i,G)_{x}=1$即不经过$[1,x)$中的点且$i$与$x$强连通 首先,当存在这 ...
- [nowcoder5668J]Operating on the Tree
考虑令$a_{i}$为i的位置,$p_{i}=0/1$表示第i个点的贡献,那么$p_{x}=0$当且仅当存在与其相邻的点$y$满足$a_{y}<a_{x}$且$p_{y}=1$ 树形dp,定义状 ...
- Python描述符以及Property方法的实现原理
Python描述符以及Property方法的实现原理 描述符的定义: 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实了__get__(),__set__(),__delete__()中 ...