package com.daxin.jedis_datastructure;

import org.junit.After;
import org.junit.Before;
import org.junit.Test; import redis.clients.jedis.Jedis; /**
* Unit test for simple App.
*/
public class AppTest { Jedis jedis = null; @Before
public void before() {
jedis = RedisUtils.getJedis();
jedis.flushDB();
} @After
public void after() {
jedis.close();
} /**
* 简单key/value设置
*/
@Test
public void jedis_set_get() {
// 设置key
jedis.set("redis_key", "redis_value");
System.out.println(jedis.get("redis_key")); // 追加到指定key的后面
jedis.append("redis_key", "_redis_value");
System.out.println(jedis.get("redis_key")); // 1,2参数不解释
// NX如果不存在的话,则设置,否则不设置。XX如果存在则设置
// EX表示秒。PX表示毫秒
// 最后一个参数表示多长时间过期
jedis.set("redis_key", "123456789", "XX", "EX", 500L);
System.out.println(jedis.get("redis_key"));
jedis.set("123456789", "123456789", "NX", "EX", 500L);
System.out.println(jedis.get("123456789")); } /**
* redis中没有int类型,里面存储的是string,在进行int加减时候将string转int然后再转string存储
*/
@Test
public void jedis_incr_incrBy() { System.out.println("------------incrBy10------------");
// 加10
Long r1 = jedis.incrBy("top", 10);// redis中没有int类型,里面存储的是string,在进行int加减时候将string转int然后再转string存储
System.out.println(r1);
System.out.println("------------incr------------");
// 加1
r1 = jedis.incr("top");
System.out.println(r1); System.out.println("------------incrBy2------------");
r1 = jedis.incrBy("top", 2);
System.out.println(r1);
} @Test
public void jedis_decr_decrBy() { Long r1 = jedis.incrBy("top", 10); System.out.println(r1);
// 减1操作
r1 = jedis.decr("top");
System.out.println(r1);
// 减去4操作
r1 = jedis.decrBy("top", 4);
System.out.println(r1);
} @Test
public void jedis_getset() { /**
* 先获取在设置
*/
String r1 = jedis.getSet("daxin", "first");
System.out.println(r1);
r1 = jedis.getSet("daxin", "first");
System.out.println(r1); } @Test
public void jedis_setex() throws Exception {
String r1 = jedis.setex("loginstate", 5, "yes");
System.out.println(r1);//返回OK
System.out.println(jedis.get("loginstate"));
Thread.sleep(6000);//睡眠
System.out.println(jedis.get("loginstate"));//过期 }
/**
* 只有在 key 不存在时设置 key 的值。
* @throws Exception
*/
@Test
public void jedis_setnx() throws Exception {
//只有在 key 不存在时设置 key 的值。
Long r1 = jedis.setnx("top", "1");//返回值1设置ook, 0失败设置
System.out.println(r1);
r1 =jedis.setnx("top", "2");// 0失败设置
System.out.println(r1); } @Test
public void jedis_mget() {
//一次设置多个key/value,必须成对出现
String r1 = jedis.mset("daxin","first","la","laji");
System.out.println(r1);
System.out.println(jedis.get("daxin"));
System.out.println(jedis.get("la")); } /**
* 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
*/
@Test
public void jedis_range() {
jedis.set("top", "top-k");
jedis.setrange("top", 2, "*");//此处是覆盖,不是插入
System.out.println(jedis.get("top"));
} /**
* 返回 key 所储存的字符串值的长度。
*/
@Test
public void jedis_strlen() {
jedis.set("top", "top-k");
System.out.println(jedis.strlen("top"));
} /**
* 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
*/
@Test
public void jedis_msetnx() {
jedis.set("top", "top-k");
//注意:要所有的key都不存在才可以插入,否则全不插入
jedis.msetnx("top","toptop","111","1111");
System.out.println(jedis.get("top"));
System.out.println(jedis.get("111")); }
/**
* 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
* @throws Exception
*/
@SuppressWarnings("deprecation")
@Test
public void jedis_psetex() throws Exception {
jedis.psetex("top", 1000*60, "一分钟失效");
System.out.println(jedis.get("top"));
Thread.sleep(1000*60);
System.out.println(jedis.get("top"));
} }

Redis String类型的API使用的更多相关文章

  1. [置顶] Redis String类型数据常用的16条命令总结

    Redis String类型数据常用的16条命令总结 描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比 ...

  2. C# 通过ServiceStack 操作Redis——String类型的使用及示例

    1.引用Nuget包 ServiceStack.Redis 我这里就用别人已经封装好的Reids操作类,来演示,并附上一些说明 RedisConfigInfo--redis配置文件信息 /// < ...

  3. Redis string类型常用操作

      Redis 有 string.list.set.zset.hash数据类型.string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习re ...

  4. redis string类型设置过期时间后 再进行set操作,会清除过期时间

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_41756437/article/d ...

  5. Redis - string类型操作

    以个人信息为例操作string类型 设置操作: set:     set key value            创建key-value名值对 setnx:      setnx key value ...

  6. Redis学习第二课:Redis String类型及操作

    Strings类型 String是最简单的类型,一个Key对应一个Value,String类型是二进制安全的,可以包含任何数据,比如jpg图片或序列化的对象. Strings类型的操作: Set:设置 ...

  7. redis string类型 增删改查

    string一.设置 1.设置一个键值对时,如果该键已存在,那么就成了updata (key:value) 例: set name jiang 访问值:get name 2.设置值过期时间:setex ...

  8. redis string类型

  9. [redis] redis 对string类型数据操作

    package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...

随机推荐

  1. [Luogu4986] 逃离

    Description 给定次数为 \(n\) 的函数 \(A(x),B(x),C(x)\),求 \(A^2(x)+B^2(x)-C^2(x)\) 在 \([L,R]\) 的零点.\(n\leq 10 ...

  2. [转]微擎load()文件加载器

    本文转自:https://blog.csdn.net/qq_32737755/article/details/78124534 微擎中加载文件需要用到 load() 在官网找到官方对load()的解释 ...

  3. c# 匿名方法几种表现形式

    delegate int del(int a); static void Main(string[] args) { //匿名方法的几种表现形式 del del = delegate (int x) ...

  4. Modular Inverse(zoj3609+欧几里德)

    Modular Inverse Time Limit: 2 Seconds      Memory Limit: 65536 KB The modular modular multiplicative ...

  5. Tests for Variances

    In each case, we'll illustrate how to perform the hypothesis tests of this lesson using summarized d ...

  6. 【工具相关】Web-HTML特殊字符对照表

    特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 Α Α Α Β Β Β Γ Γ Γ Δ Δ Δ Ε Ε Ε Ζ Ζ Ζ Η Η Η Θ Θ Θ Ι Ι ...

  7. loadrunner 场景设计-集合点设置

    场景设计-集合点设置 by:授客 QQ:1033553122 1  作用 通过让多用户在同一时间点上进行并发操作来测试系统的并发处理的能力 2  实现 通过集合点函数来实现. 注意:集合点经常和事务结 ...

  8. off by null 实战

    前言 off by null 是一个比较有意思的技术 下面通过 hctf2018 的 heapstrom_zero 实战一波. 相关文件(exp, 题目)位于 https://gitee.com/ha ...

  9. 生产者与消费者+Queue(线程安全)

    from queue import Queue from lxml import etree import requests from urllib import request from threa ...

  10. Cookie管理 WebView同步

    NoHttp的Cookie管理原理 在文档的初始化配置一章讲了NoHttp如何配置或者禁用cookie自动管理. NoHttp的Cookie自动维护,严格遵守Http协议,即区分临时Cookie和有效 ...