3、Redis中对String类型的操作命令
1、对String类型的操作
1.1、get、set、del:获取key的值、设置key的值、删除key的值
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: get、set、del 操作示例
*/
public class String_get_set_del_operation { public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 set k1 v1
*/
String set = jedis.set("k1", "1");
System.out.println("set = " + set);
System.out.println("======================"); /**
* 示例2: 相当于执行 get k1
*/
String k1 = jedis.get("k1");
System.out.println("k1 = " + k1);
System.out.println("======================"); /**
* 示例3:相当于执行 del k1
*/
Long delk1 = jedis.del("k1");
System.out.println("delk1 = " + delk1);
}
}
1.2、incr、decr:递增和递减整数值,格式是:incr key值
操作如下:

Java代码示例如下:
/**
* redis中对于字符串类型的: incr、decr 操作示例
*/
public class String_incr_decr_operation { public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 incr k1
*/
Long incrk1 = jedis.incr("k1");
System.out.println("incr k1 = " + incrk1); System.out.println("======================"); /**
* 示例2: 相当于执行 decr k1
*/
Long decrk1 = jedis.decr("k1");
System.out.println("decr k1 = " + decrk1);
}
}
1.3、incrby、decrby:递增和递减整数值,可指定增减的数值,格式是:incrby key值 正负数
操作如下:

Java代码示例如下:
/**
* redis中对于字符串类型的: incrby、decrby 操作示例
*/
public class String_incrby_decrby_operation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 incrBy k1 v1
*/
Long incrBy = jedis.incrBy("k1",4);
System.out.println("incrBy = " + incrBy); System.out.println("======================"); /**
* 示例2: 相当于执行 decrBy k1 v1
*/
Long decrBy = jedis.decrBy("k1",2);
System.out.println("decrBy = " + decrBy);
}
}
1.4、incrbyfloat:递增和递减浮点数,格式是:incrbyfloat key值 正负数值
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: incrbyfloat操作示例
*/
public class String_incrbyfloat_operation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 incrbyfloat k1 v1
*/
Double incrByFloat1 = jedis.incrByFloat("k1", 4.2);
System.out.println("incrByFloat1 = " + incrByFloat1); Double incrByFloat2 = jedis.incrByFloat("k1", -2.2);
System.out.println("incrByFloat2 = " + incrByFloat2); }
}
1.5、append:在尾部追加值,格式是:append key值 追加的值
操作如下:

Java代码示例如下:
/**
* redis中对于字符串类型的: append操作示例
*/
public class String_append_operation { public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 append k1 v1
*/
Long append = jedis.append("k1", "1");
System.out.println("append = " + append);
}
}
1.6、getrange、setrange:获取指定索引范围内的值,格式是:getrange key值 起始索引 结束索引
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: getrange操作示例
*/
public class String_getrange_operation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 getrange k1 start end
*/
String k1 = jedis.getrange("k1", 0, -1);
System.out.println("k1 = " + k1); String k11 = jedis.getrange("k1", 1, 5);
System.out.println("k11 = " + k11); }
}
1.7、strlen:返回键值的长度,格式是:strlen key值
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: strlen操作示例
*/
public class String_strlen_operation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 strlen k1
*/
Long k1 = jedis.strlen("k1");
System.out.println("k1 = " + k1);
}
}
1.8、mget、mset:同时获取多个键的值、同时设置多个键的值,格式为:mget 多个key值、mset key值 value(key和value可以是多对)
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; import java.util.List; /**
* redis中对于字符串类型的: mget mset 操作示例
*/
public class String_mget_mset_operation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 mget k1 k2 k3 k4
*/
List<String> mget = jedis.mget("k1", "k2", "k3", "k4");
mget.stream().forEach(System.out::println); String mset = jedis.mset("k1", "1", "k2","2","k3","3");
System.out.println("mset = " + mset); mget = jedis.mget("k1", "k2", "k3", "k4");
mget.stream().forEach(System.out::println);
}
}
1.9、bitcount:获取范围内为1的二进制位数,格式是:bitcount key值[start end] (ps: 这里的start end 是指value的值的起始位置)
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: bitcount 操作示例
*/
public class String_bitcount_operation { public static void main(String[] args) {
/**
* 获取字母"a"对应的二进制
*/
byte[] bytes = "a".getBytes();
String s = Integer.toBinaryString(bytes[0]);
System.out.println("s = " + s); Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 bitcount k1[start end]
*/
String set = jedis.set("k1", "a");
Long bitcount = jedis.bitcount("k1");
System.out.println("bitcount = " + bitcount); /**
* 因为 k1对应的value是'a'只有一个长度
*/
Long bitcount2 = jedis.bitcount("k1", 0, 2);
System.out.println("bitcount2 = " + bitcount2); }
}
1.10、getbit、setbit:获取指定位置的二进制位的值、设置指定位置的二进制位的值,格式是:getbit key值 offset索引、setbit key值 offset索引 值
操作如下:
getbit key值 offset索引
字母'a'对于的二进制位"01100001"

setbit key值 offset索引 值
因为字母'b'的二进制位"01100010",我们只要把字母"a"的二进制的第7位设置为0、第六位设置为1,就可以等到一个字母"b"了。

Java代码示例如下
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: getbit、setbit 操作示例
*/
public class String_getbit_setbit_operation {
public static void main(String[] args) {
/**
* 获取字母"a"对应的二进制
*/
byte[] bytes = "a".getBytes();
String s = Integer.toBinaryString(bytes[0]);
System.out.println("s = " + s); Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 getbit k1 1
*/
String set = jedis.set("k1", "a");
Boolean getbit = jedis.getbit("k1", 1);
System.out.println("getbit = " + getbit); /**
* 示例2:相当于执行 setbit k1 7 0 / setbit k1 6 1
*/
jedis.setbit("k1",7l,"0");
jedis.setbit("k1",6l,"1");
String k1 = jedis.get("k1");
System.out.println("k1 = " + k1);
}
}
1.11、bitop:对多个二进制位进行位操作,格式是:bitop 操作 目的key key值1 key值2,操作有:and、or、xor、not。 (key值可以有多个)
操作如下:
"a" --- 01100001
"b" --- 01100010

1.12、getset:原子的设置key的值,并返回key的旧值,格式是:getset key value
操作如下:

Java代码示例如下:
import redis.clients.jedis.Jedis; /**
* redis中对于字符串类型的: getset 操作示例
*/
public class String_getset_operation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: 相当于执行 getSet k1 v1
*/
String getSet = jedis.getSet("k1", "111");
System.out.println("getSet = " + getSet); System.out.println("======================");
}
3、Redis中对String类型的操作命令的更多相关文章
- 6、Redis中对Hash类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- 5、Redis中对Set类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- 4、Redis中对List类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- 7、Redis中对ZSet类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ---------- ...
- Redis中一个String类型引发的惨案
曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID.我们假设用10位数来表示 ...
- C++中关于string类型究竟能不能用cout输出的问题
先让我讲下故事哈 一次在MFC中用cout输出一个string类型字符串,编译时出现这样一个错误: error C2679: binary '<<' : no operator defin ...
- mysql语句中把string类型字段转datetime类型
mysql语句中把string类型字段转datetime类型 在mysql里面利用str_to_date()把字符串转换为日期 此处以表h_hotelcontext的Start_time和En ...
- c/c++中关于String类型的思考
首先说明:String并不是一种内置类型,因此任何通过String声明出来的实例都不是一个变量,不同于内置类型因此String仅仅能称之为一种特殊的型别,没错String是一个类类型. 一般来说c语言 ...
- Python(Redis 中 Set/Zset 类型数据和其他操作)
1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...
随机推荐
- python(13)多线程:线程池,threading
python 多进程:多进程 先上代码: pool = threadpool.ThreadPool(10) #建立线程池,控制线程数量为10 reqs = threadpool.makeRequest ...
- MySQL5.7之多源复制&Nginx中间件(上)【转】
有生之年系列----MySQL5.7之多源复制&Nginx中间件(上)-wangwenan6-ITPUB博客http://blog.itpub.net/29510932/viewspace-1 ...
- 最详细的block底层
主要讲述的要点: block 干什么用的 block 语法 block 底层实现 block 变量捕捉 block 的种类.在存储空间中的存储位置 block 循环引用 __block 在ARC 中 ...
- mysql高可用架构 -> MHA部署-04
MHA架构图 本次MHA的部署基于GTID复制成功构建,普通主从复制也可以构建MHA架构. 下载所需的软件包 mkdir /server/tools -p //创建存放包的目录 [root@db01 ...
- 使用离线包部署kubernetes 1.9.0、kubernetes-dashboard 1.8
=============================================== 2018/3/22_第2次修改 ccb_warlock 更新 ...
- WPF Devexpress GridControl Value与Display转换
直入主题吧!开发中往往需要将代码转换成中文显示在表格中. 如下图 下面就直接贴代码了. C#代码 using System; using System.Collections.Generic; usi ...
- 22 Gobs of data 设计和使用采集数据的包
Gobs of data 24 March 2011 Introduction To transmit a data structure across a network or to store it ...
- SpringCloud常用注解
一 @EnableDiscoveryClient,@EnableEurekaClient的区别 SpringCLoud中的“Discovery Service”有多种实现,比如:eureka, con ...
- csslint在前端项目中的使用
大家都听说过jslint,eslint,不过你可能没见过csslint,你可能会问csslint有什么用,为什么今天要说csslint,是因为我在开发中遇到一个坑,其实之前不怎么使用csslint的, ...
- Oracle 中count(1) 、count(*) 和count(列名) 函数的区别
1)count(1)与count(*)比较: 1.如果你的数据表没有主键,那么count(1)比count(*)快2.如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快3. ...