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. VPS杂谈(一)

    1. VPS购买推荐 可参考:http://www.laozuo.org/myvps 2. VPS配置SSH端口号 购买的VPS的主机,一般情况下端口号不是22,被改成了其它的,这个时候为了方便自己的 ...

  2. .net core 基于IIS发布

    原文链接: https://www.cnblogs.com/gx018/p/7874060.html

  3. C++注入记事本

    #include <iostream>; using namespace std; #include <windows.h>; #include <tlhelp32.h& ...

  4. Http 概述

    Http是可靠的数据传输协议.   资源 Web服务器是Web资源(resource)的宿主.包括静态文件以及动态的内容.   媒体类型 Http对每种需要由web传输的对象都打上了名为MIME类型的 ...

  5. iis 站点中文乱码 解决方案

    问题描述:iis乱码问题 1:在vs里开发没问题,发布后用发布文件替换iis文件没问题,但是如果用fis3发布后导致iis站点访问时出现部分中文乱码 原理:文件编码格式不统一 解决方案: 四个步骤解决 ...

  6. java-上转型对象&抽象类-学习记录

    上转型对象: 如果B类是A类的子类(或间接子类),当用子类创建对象b并将这个对象的引用放到父类对象a中时,如: A a; a = new b() 或 A a;B b = new B();a = b; ...

  7. C++ enum的使用

    enum day {Sun,Mon,Tue,Wed,Thu,Fri,Sat};  默认情况下,枚举符的值从0开始,其后值总是前面一个+1.  即Sun=0,Mon=1,Tue=2,Wed=3,Thu= ...

  8. springMVC 拦截器源码解析

    前言:这两天学习了代理模式,自然想到了 springmvc 的 aop 使用的就是动态代理,拦截器使用的就是 jdk 的动态代理.今天看了看源码,记录一下.转载请注明出处:https://www.cn ...

  9. Ajax实现的城市二级联动一

    前一篇是把省份和城市都写在JS里,这里把城市放在PHP里,通过发送Ajax请求城市数据渲染到页面. 1.html <select id="province"> < ...

  10. 9种网页Flash焦点图和jQuery焦点图幻灯片

    jQuery图标放大轮播焦点图 Flash图片焦点图滑动切换 Flash右侧焦点图上下滑动切换 左右按钮滑动切换的网页幻灯片 双图同时滑动切换的焦点图 含有上下按钮的双图同时滑动切换的焦点图 常见的j ...