/**
* String(字符串)
* APPEND,BITCOUNT,BITOP,BITFIELD,DECR,DECRBY,GET,GETBIT,GETRANGE,GETSET,INCR,INCRBY,INCRBYFLOAT,MGET,MSET,MSETNX,PSETEX,SET,SETBIT,SETEX,SETNX,SETRANGE,STRLEN
*/
public class StringTypeTest {
private Jedis jedis; private static final String KEY = "name"; private static final String VALUE = "layman"; @Before
public void setUp() {
JedisShardInfo info = new JedisShardInfo("192.168.133.188", 6379);
this.jedis = new Jedis(info);
jedis.select(0);
} /**
* SET key value [EX seconds] [PX milliseconds] [NX|XX]
* 将字符串值 value 关联到 key 。
* 如果 key 已经持有其他值, SET 就覆写旧值,无视类型。
* 对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。
* 可选参数
* 从 Redis 2.6.12 版本开始, SET 命令的行为可以通过一系列参数来修改:
* EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。
* PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。
* NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。
* XX :只在键已经存在时,才对键进行设置操作。
*/
@Test
public void SET() {
//设置不存在key为name时设置其值为layman并在15秒后过期
jedis.set(KEY, VALUE, "NX", "EX", 15);
out(jedis.get(KEY));
} /**
* MSET key value [key value ...] MGET key [key ...]返回所有(一个或多个)给定 key 的值。如果给定的key里面,有某个key不存在,那么这个key返回特殊值nil 。因此,该命令永不失败。
* 同时设置一个或多个 key-value 对。
* 如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
* MSET 是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。
*/
@Test
public void MSET() {
jedis.mset("name", "layman", "age", "24");
out(jedis.mget("name", "age"));
} /**
* GET key
* 返回 key 所关联的字符串值。
* 如果 key 不存在那么返回特殊值 nil 。
* 假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值。
*/
@Test
public void GET() {
out(jedis.get(KEY));
} /**
* GETSET key value
* 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
* 当 key 存在但不是字符串类型时,返回一个错误。
*/
@Test
public void GETSET() {
SET();
out(jedis.getSet(KEY, "leo"));
GET();
} /**
* APPEND key value
* 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
* 如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
*/
@Test
public void APPEND() {
SET();
jedis.append("name", "APPEND");
GET();
} /**
* SETBIT key offset value
* 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
* 位的设置或清除取决于 value 参数,可以是 0 也可以是 1 。
* 当 key 不存在时,自动生成一个新的字符串值。
* 字符串会进行伸展(grown)以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。
* offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。
*/
@Test
public void SETBIT() {
jedis.setbit(KEY, 2l, true);
BITCOUNT();
} /**
* BITCOUNT key [start] [end]
* 计算给定字符串中,被设置为 1 的比特位的数量。
* 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。
* start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值: 比如 -1 表示最后一个字节, -2 表示倒数第二个字节,以此类推。
* 不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0 。
*/
@Test
public void BITCOUNT() {
out(jedis.bitcount(KEY));
} /**
* SETRANGE key offset value
* 用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。
* 不存在的 key 当作空白字符串处理。
* SETRANGE 命令会确保字符串足够长以便将 value 设置在指定的偏移量上,
* 如果给定key原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ),
* 那么原字符和偏移量之间的空白将用零字节(zerobytes, "\x00" )来填充。
*/
@Test
public void SETRANGE() {
SET();
jedis.setrange(KEY, 4L, "leo");
GET();
/** 结果
* layman
* laymleo
*/
} /**
* GETRANGE key start end
* 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
* 负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。
*/
@Test
public void GETRANGE() {
SET();
out(jedis.getrange(KEY, 2, -3));
} /**
* 返回 key 所储存的字符串值的长度。
*/
@Test
public void STRLEN() {
SET();
out(jedis.strlen(KEY));
} /**
* INCR key
* 将 key 中储存的数字值增一。
* 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
* 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
*/
@Test
public void INCR() {
jedis.incr(KEY);
GET();
} /**
* INCRBY key increment INCRBYFLOAT key increment
* 将 key 所储存的值加上增量 increment 。
* 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
* 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
*/
@Test
public void INCRBY() {
jedis.incrBy(KEY, 24);
GET();
jedis.incrByFloat(KEY, 0.22225);
GET();
} private void out(Object msg) {
System.out.println(msg);
}
}

Jedis操作Redis--String类型的更多相关文章

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

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

  2. Jedis操作Redis技巧详解

    对于Redis的部署模式有两种,单机模式 和 集群模式.因此,本文的介绍也从这两个方面进行介绍.众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作.本文就是 ...

  3. Java中Jedis操作Redis与Spring的整合

    Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...

  4. Redis入门和Java利用jedis操作redis

    Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...

  5. Jedis操作Redis数据库

    添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...

  6. Jedis操作Redis

    Jedis操作Redis的常用封装方法 @Resource(name="jedispool") private JedisPool pool=null; /** * 设置缓存对象过 ...

  7. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

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

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

  9. jedis操作redis的几种常见方式总结

    Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...

  10. 四、Jedis操作Redis

    前言:  原来我们操作mysql需要用的jdbc,现在操作redis则需要jedis,jedis是客户端,而redis是服务器,使用jedis客户端来操作redis. 在这里要使用jedis操作red ...

随机推荐

  1. 关于HTML的引入CSS文件问题

    一 html代码引用外部css文件时若css文件在本文件的父目录下的其他目录下,可使用绝对路径.此时路径要写为  “ ../ ”形式,如在tomcat下建立一个test文件,在该文件中建立两个文件 夹 ...

  2. js页面3秒自动跳转

    如何让当前页面3秒以后自动跳转到其他页面?JS页面自动跳转 想实现登陆后3秒自动跳转到某页的功能,在网上搜了一下,供以后使用 1.<script   language= "javasc ...

  3. 跟着大彬读源码 - Redis 8 - 对象编码之字典

    目录 1 字典的实现 2 插入算法 3 rehash 与 渐进式 rehash 总结 字典,是一种用于保存键值对的抽象数据结构.由于 C 语言没有内置字典这种数据结构,因此 Redis 构建了自己的字 ...

  4. 前端笔记之React(八)上传&图片裁切

    一.上传 formidable天生可以处理上传的文件,非常简单就能持久上传的文件. 今天主要讲解的是,前后端的配合套路. 上传分为同步.异步.同步公司使用非常多,异步我们也会讲解. 1.1 先看一下a ...

  5. 使用nginx代理centos yum 源

    我们在安装centos 服务器时,可能会有以下情况: 局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网,但通过局域网与外网机器联通. 那么我们再使用 yum 安装软件 ...

  6. Spring系列(一):Spring核心概念

    一.Spring概念 Spring是一种多层的J2EE应用程序框架,其核心就是管理资源组件以及依赖关系,Spring框架为现代基于java的企业应用程序提供了一个全面的编程和配置模型. 二.Sprin ...

  7. 微服务与网关技术(SIA-GateWay)

    一.背景 软件架构,总是在不断的演进中... 把时间退回到二十年之前,当时企业级领域研发主要推崇的还是C/S模式,PB.Delphi这样的开发软件是企业应用开发的主流.随着时间的推移,基于浏览器的B/ ...

  8. Redis——发布和订阅

    发布与订阅(又称pub/sub),订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息(binary string message).每 ...

  9. 99% 的人都不知道的 Kubernetes 网络疑难杂症排查方法

    原文链接:Kubernetes 网络疑难杂症排查分享 大家好,我是 roc,来自腾讯云容器服务 (TKE) 团队,经常帮助用户解决各种 K8S 的疑难杂症,积累了比较丰富的经验,本文分享几个比较复杂的 ...

  10. spring-boot-plus项目目录结构(六)

    spring-boot-plus项目目录结构 目录结构 bin:启动/重启命令脚本目录 logs:部署后记录日志目录 assembly:maven打包配置文件目录 java:源代码目录 resourc ...