Redis 学习笔记(二)之字符串类型命令

您所在的位置:网站首页 mget命令可以用于获取指定字符串键的旧值并设置新值吗 Redis 学习笔记(二)之字符串类型命令

Redis 学习笔记(二)之字符串类型命令

2024-07-16 01:14:34| 来源: 网络整理| 查看: 265

Redis 学习笔记(二) 字符串类型 字符串类型是redis中最基本的数据类型,他能存储任何形式的字符串,包括二进制数据。一个字符串类型键允许的数据的最大容量是512MB。 命令 SET 和 GET 类似于读和写变量 SET key value [EX seconds] [PX milliseconds] [NX|XX] GET key SET命令的参数: EX seconds:以**秒**为单位设置键的key过期时间 PX millinseconds:以**毫秒**为单位设置过期时间 NX :只有键不存在的时候才可以设置成功 XX:只有键在已经存在的时候才可以设置成功 127.0.0.1:6379> SET test1 "hello" OK 127.0.0.1:6379> GET test1 "hello" 127.0.0.1:6379> GET test2 (nil) //当GET 一个不存在的键会返回空结果。 127.0.0.1:6379> SET test1 "hello world" OK 127.0.0.1:6379> GET test1 "hello world" //多次SET同一个键时,键值会被覆盖。 GETRANGE 用于获取存储在键的字符串值的子字符串,由偏移量的开始和结束(两者都包括)确定。可以使用负偏移,以便从字符串的末尾开始计算偏移 GETRANGE KEY_NAME start end 127.0.0.1:6379> GETRANGE test1 0 4 "hello" 127.0.0.1:6379> GETRANGE test1 0 -1 "hello world" 127.0.0.1:6379> GETRANGE test1 6 -1 "world" GETSET 在Redis键中设置指定的字符串值,并返回其旧值,不存在返回空结果。 GETSET key value 127.0.0.1:6379> GETSET test2 "first GETSET" (nil) 127.0.0.1:6379> GETSET test2 "second GETSET" "first GETSET" MGET 和 MSET MGET命令用于获取所有指定键的值。对于不包含字符串值或不存在的每个键,返回空结果 MSET命令用于一次多个键设置它们的值。 MGET key [key ...] MSET key value [key value ...] 127.0.0.1:6379> MSET test3 "hello" test4 "world" test5 "!!!" OK 127.0.0.1:6379> MGET test3 test4 test5 test6 1) "hello" 2) "world" 3) "!!!" 4) (nil) //不存在的键返回空结果 STRLEN 用于获取存储在键中的字符串值的长度。当键包含非字符串值时返回错误 STRLEN key 127.0.0.1:6379> STRLEN test5 (integer) 3 127.0.0.1:6379> STRLEN test6 (integer) 0 //不存在的键返回整数0 SETRANGE 命令用于覆盖键的值,从指定偏移处开始的一部分字符串,返回字符串在修改后的长度。 SETRANGE key offset value 127.0.0.1:6379> GET test1 "hello redis" 127.0.0.1:6379> SETRANGE test1 6 "ubuntu" (integer) 12 127.0.0.1:6379> GET test1 "hello ubuntu" 127.0.0.1:6379> GETSET test1 "abc" "hello ubuntu" 127.0.0.1:6379> SETRANGE test1 4 "def" (integer) 7 127.0.0.1:6379> GET test1 "abc\x00def" //如果设置的key原来的字符串长度要比偏移量小,就会以零字节(\x00)来补充 SETNX 命令用于在Redis键中设置某些字符串值(如果该键在Redis中不存在)。如果不存在,则SETNX的全形式是SET。 SETNX key value //等价于 SET key value NX 127.0.0.1:6379> EXISTS test6 //测试键是否存在,存在返回整数1,否则返回0 (integer) 0 127.0.0.1:6379> SETNX test6 "test6 is not exists" (integer) 1 //设置成功 127.0.0.1:6379> GET test6 "test6 is not exists" 127.0.0.1:6379> EXISTS test5 (integer) 1 127.0.0.1:6379> SETNX test "test5 is exists" (integer) 0 //test5设置设置失败 SETEX 命令用于在Redis键中的指定超时,设置键的字符串值。SETEX是原子操作,相当于执行了SET键值又对key设置了过期时间。 SETEX key seconds value //等价于 SET key value EX seconds 127.0.0.1:6379> SETEX test1 30 "thirty" OK 127.0.0.1:6379> TTL test1 //查看键的生存时间,test1已过期 (integer) -2 127.0.0.1:6379> GET test1 (nil) MSETEX 用于为多个键设置多个值(仅当在键都不存在时)。如果当前操作中有任何一个存在于Redis中,那么MSETNX不执行任何操作。 MSETNX key value [key value ...] 127.0.0.1:6379> MSETNX test7 "7" test8 "8" (integer) 1 //返回1设置成功 127.0.0.1:6379> MGET test7 test8 1) "7" 2) "8" 127.0.0.1:6379> MSETNX test8 "8" test9 "9" (integer) 0 127.0.0.1:6379> MGET test8 test9 1) "8" 2) (nil) //test9设置失败 PSETEX 命令用于设置键的值,以毫秒为单位指定过期时间 PSETEX key milliseconds value //等价于 SET key value PX milliseconds 127.0.0.1:6379> PSETEX test9 2000 "millinseconds" OK 127.0.0.1:6379> PTTL test9 //PTTL获得毫秒级的生存时间 (integer) 624 127.0.0.1:6379> GET test9 (nil) INCE 命令用于将键的整数值递增1。如果键不存在,则在执行操作之前将其设置为0。如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。此操作限于64位有符号整数。 INCR key 127.0.0.1:6379> INCR counter //如果key不存在,先初始化为0,在进行INCR操作 (integer) 1 127.0.0.1:6379> INCR counter (integer) 2 127.0.0.1:6379> INCR counter (integer) 3 INCRBY 用于将存储在键上的数字按指定的值增加。 如果键不存在,则在执行操作之前将其设置为0。如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。 INCRBY key increment 127.0.0.1:6379> GET counter "3" 127.0.0.1:6379> INCRBY counter 10 (integer) 13 INCRBYFLOAT 用于将递增的字符串表示为浮点数,该值存储在键上指定的增量。 如果键不存在,则在执行操作之前将其设置为0。 如果键包含错误类型的值或当前键内容或指定的增量不能解析为浮点数,则返回错误。支持小数点往后17位的运算操作 INCRBYFLOAT key increment 127.0.0.1:6379> INCRBYFLOAT linux 1 "1" 127.0.0.1:6379> INCRBYFLOAT linux 0.012345678901234567890123456789 "1.01234567890123457" DECR 用于将键的整数值减1。 如果键不存在,则在执行操作之前将其设置为0。 如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。 此操作限于64位有符号整数。 DECR key 127.0.0.1:6379> DECR counter (integer) -1 127.0.0.1:6379> DECR counter (integer) -2 127.0.0.1:6379> DECR counter (integer) -3 DECRBY 将存储在键上的数字按指定的值减少。如果键不存在,则在执行操作之前将其设置为0。 如果键包含错误类型的值或包含无法表示为整数的字符串,则会返回错误。 DECRBY key decrement 127.0.0.1:6379> DECRBY counter -10 (integer) 7 127.0.0.1:6379> DECRBY counter -10 (integer) 17 APPEND 命令用于在键中添加一些值。返回追加后的字符串长度。 APPEND key value 127.0.0.1:6379> SET say hello OK 127.0.0.1:6379> APPEND say " world" (integer) 11 127.0.0.1:6379> GET say "hello world" GETBIT 可以获得一个字符串类型指定位置的二进制位的值(0或1),索引以0开始。 GETBIT key offset 127.0.0.1:6379> SET foo bar //bar的二进制表示如下表 OK 127.0.0.1:6379> GETBIT foo 0 //下标为0的位值为0 (integer) 0 127.0.0.1:6379> GETBIT foo 6 //下标为6的位值为1 (integer) 1

bar的二进制表示如下:

bar011000100110000101110010

- SETBIT - 设置字符串类型键指定位置的二进制位的值,返回该位置的旧值。

SETBIT key offset value 127.0.0.1:6379> SETBIT foo 6 0 (integer) 1 127.0.0.1:6379> SETBIT foo 7 1 (integer) 0 127.0.0.1:6379> GET foo "aar"

将b的二进制码01100010的下标第6和第7位分别置为0和1,得到01100001是a的ASCLL码。

BITOP 可以对多个字符串类型键进行位运算,并将结果存在destkey参数规定的键中。BITOP命令支持的运算操作有AND、OR、XOR和NOT BITOP operation destkey key [key ...] 127.0.0.1:6379> BITOP XOR res foo foo (integer) 3 127.0.0.1:6379> GET res "\x00\x00\x00"

两个相同的值做异或运算结果为0。

BITPOS 获得指定键的第一个位值是0或者1的位置。 BITPOS key bit [start] [end] //start 和 end 位置以字节为单位 127.0.0.1:6379> BITPOS foo 1 //第一个值为1的位下标为1 (integer) 1 127.0.0.1:6379> BITPOS foo 1 1 2 //下标为1到2的字节中,第一个值为1的下标为整个键值的第9位 (integer) 9


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭