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. fabric运行错误汇总

    Error generating signCA for org org1.example.com: Failed storing key [ECDSAP256]: Failed storing ECD ...

  2. 如何解决Redis缓存雪崩、缓存穿透

    缓存雪崩 数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机. 比如一个雪崩的简单过程: 1.redis集群大面积故障 2.缓存失 ...

  3. 关于 RocketMQ 事务消息的正确打开方式 → 你学废了吗

    开心一刻 昨晚和一哥们一起吃夜宵,点了几瓶啤酒 不一会天空下起了小雨,哥们突然道:糟了 我:怎么了 哥们:外面下雨了,我老婆还在等着我去接她 他给了自己一巴掌,说道:真他妈不是个东西 我心想:哥们真是 ...

  4. Python基础(递归函数)

    def age(n): if n == 1: return 18 else: return age(n - 1) + 2 ret=age(100) print(ret)#216 def test(nu ...

  5. Mac 安装 RabbitMQ 出现的问题

    安装 RabbitMQ 在官网这里按照步骤来就行 出现Error: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugin ...

  6. 大爽Python入门教程 2-1 认识容器

    大爽Python入门公开课教案 点击查看教程总目录 1 什么是容器 先思考这样一个场景: 有五个学生,姓名分别为: Alan, Bruce, Carlos, David, Emma. 需要给他们都打一 ...

  7. 测试平台系列(82) 解决APScheduler重复执行的问题

    大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们编写了在线执行R ...

  8. 使用postman对elasticsearch接口调用

    post 新增 get 查询 put更新 post http://127.0.0.1:9200/index4/type1 {"node":0} { "_index&quo ...

  9. idea文件多行显示

    将红色部分取消勾选

  10. JavaWeb Cookie,Session

    Cookie 1.Cookie翻译过来是饼干的意思.Cookie是服务器通知客户端保存键值对的一种技术.客户端有了Cookie 后,每次请求都发送给服务器.每个Cookie的大小不能超过4kb. 2. ...