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. request truncate large response body

    requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read, 512 more ...

  2. 【JavaScript实用技巧(二)】Js操作DOM(由问题引发的文章改版,新人大佬都可)

    [JavaScript实用技巧(二)]Js操作DOM(由问题引发的文章改版,新人大佬都可!) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人 ...

  3. 【Microsoft Azure 的1024种玩法】三.基于Azure云平台构建Discuz论坛

    [简介] Discuz!是一套通用社区论坛软件系统,用户在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能.很强负载能力和可高度定制的论坛服务. [前期文章] [操作步骤] ...

  4. [cf1396E]Distance Matching

    根据$dis(x,y)=d[x]+d[y]-2d[lca(x,y)]$,由于所有点都出现了1次,距离即$\sum_{i=1}^{n}d_{i}-2\sum d[lca(x,y)]$(以下假设根深度为0 ...

  5. [noi1773]function

    以统计x坐标的数量为例:x为下标建一棵线段树,然后对每一个区间按照y坐标建一棵可持久化线段树(每一个x只保留最大的一个y),询问时,二分找到这个区间内最大的y以前的点并统计,复杂度为$o(nlog^{ ...

  6. Java设计模式之(七)——装饰器模式

    1.什么是装饰器模式? Attach additional responsibilities to an object dynamically keeping the same interface.D ...

  7. shell常用集锦

    该文整理一些常用的shell用法,及语法,并非介绍如何使用 变量 变量可分为两类:环境变量ENV(全局)和局部变量. bash环境变量 变量名 含义 _= 上一条命令的最后一个参数 BASH_VERS ...

  8. mybatis判断集合长度

    使用mybatis框架在写sql的时候碰到一个异常: 1064 - You have an error in your SQL syntax; check the manual that corres ...

  9. myeclipse字体大小格式的设置

  10. Pycharm整体缩进和减少缩进

    整体缩进:鼠标拉选住代码块,按下tab键. 反向缩进:鼠标拉选住代码块,按下shift+tab键.