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的更多相关文章

  1. Jedis操作Redis数据库

    添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...

  2. Jedis操作Redis

    Jedis操作Redis的常用封装方法 @Resource(name="jedispool") private JedisPool pool=null; /** * 设置缓存对象过 ...

  3. 四、Jedis操作Redis

    前言:  原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...

  4. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

  5. jedis操作redis的几种常见方式总结

    Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...

  6. Jedis操作Redis技巧详解

    对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...

  7. Java中Jedis操作Redis与Spring的整合

    Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...

  8. Redis入门和Java利用jedis操作redis

    Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...

  9. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  10. (转)Java中使用Jedis操作Redis

    转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...

随机推荐

  1. Flink 实践教程:入门(6):读取 PG 数据写入 ClickHouse

    作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...

  2. centos7.1使用kubeadm部署kubernetes 1.16.2的master高可用

    机器列表,配置域名解析 cat /etc/hosts192.168.200.210 k8s-master1192.168.200.211 k8s-master2192.168.200.212 k8s- ...

  3. 微信小程序如何重写Page方法?以及重写Page方法给开发者带来的好处

    17,18年的时候,我当时主要开发小程序,那时候领导想看一下小程序的访问量,还有一些埋点的需求,于是我们的小程序就接入了阿拉丁统计. 阿拉丁的接入方式除了配置以外,主要就一行引入代码.官方要求将以下代 ...

  4. 4、使用SetOperations(无序)操作redis(Set集合)

    文章来源:https://www.cnblogs.com/shiguotao-com/p/10560599.html 方法 c参数 s说明 Long add(K key, V... values); ...

  5. Sql server 删除重复记录的SQL语句

    原文地址:https://www.cnblogs.com/luohoufu/archive/2008/06/05/1214286.html 在项目开发过程中有个模块日清表页面数据重复,当时那个页面的数 ...

  6. 实践案例1-利用低代码开发平台Odoo快速构建律师事务所管理系统

    今年10月份中旬的时候,有一段时间没联系的中学同学,我跟他关系比较好,突然打电话给我,希望我给他夫人的律所开发一个小系统.记得十几年前,当他还在他叔叔公司上班的,他是负责销售的,我们几乎每周都碰面,那 ...

  7. Codeforces 983E - NN country(贪心+倍增优化)

    Codeforces 题面传送门 & 洛谷题面传送门 一道(绝对)偏简单的 D1E,但是我怕自己过若干年(大雾)忘了自己的解法了,所以过来水篇题解( 首先考虑怎么暴力地解决这个问题,不难发现我 ...

  8. Environment Modules 简明教程

    Environment Modules 简明教程 1. Modules 简介 在 Linux 超算平台上,通常会安装有不同版本的多种编译器和其他软件等,如常用的编译器有 intel 和 gnu,常用的 ...

  9. [R] 添加误差棒的分组折线图:geom_path: Each group consists of only one observation. Do you need to adjust the...

    想做一个简单的分组折线图,并添加误差棒,类似下面这样的: 用ggplot似乎很简单就能实现:ggplot+geom_errorbar+geom_line+geom_point,重点在于计算误差棒. 还 ...

  10. lilo.conf

    描述 默认情况下,本文件 ( /etc/lilo.conf ) 由引导管理程序 lilo 读取 (参考 lilo(8)). 它看起来可能象这样: boot = /dev/hda delay = 40 ...