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. 跨站请求伪造CSRF(Cross-site request forgery)

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...

  2. vb.net Function使用

    Public Function colour(ByVal Code As Int16) As Color'顏色 Select Case Code Case 1 colour = Color.White ...

  3. Java并发编程:Java线程池核心ThreadPoolExecutor的使用和原理分析

    目录 引出线程池 Executor框架 ThreadPoolExecutor详解 构造函数 重要的变量 线程池执行流程 任务队列workQueue 任务拒绝策略 线程池的关闭 ThreadPoolEx ...

  4. java错误分析之junit测试错误(实验一)

    本文转自:https://www.cnblogs.com/anny0404/p/5275595.html 在原作者的基础上进行部分添加,也很感谢原作者这篇博文,帮我分析与解决问题! 原文: 下载了最新 ...

  5. docker 搭建maven 私服

    # 搜索镜像 docker search nexus; #拉取nexus镜像docker pull sonatype/nexus; #运行 -id 创建守护式容器--privileged=true 授 ...

  6. spring 使用外部属性文件

    一.PropertyPlaceholderConfigurer spring提供的PropertyPlaceholderConfigurer实现类能够使Bean在配置时引用外部属性文件. Proper ...

  7. (网页)web性能优化(转)

    转自CSDN: Web性能优化分为服务器端和浏览器端两个方面. 一.浏览器端,关于浏览器端优化,分很多个方面1.压缩源码和图片JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行 ...

  8. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  9. 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数

    1.需求简介 最近开发人员需要进行一批数据进行生产上SQL语句耗时过长问题的验证与优化.所以在性能测试库中批量建造数据,由于交易本身业务逻辑过于复杂以及需要各种授权,最后决定采用插表的方式完成. 2. ...

  10. django 简单路由配置

    Django==2.0.1 版本路由配置: 1.在manage.py同级目录下新建一个应用app1 在app1下新建urls.py文件,定义一个app1的空白路由: from django.urls ...