威尼斯wns.9778官网 > 计算机教程 > Redis字符串类型的常用命令小结

原标题:Redis字符串类型的常用命令小结

浏览次数:60 时间:2020-01-11

Redis字符串类型

string类型介绍与大多编程语言中的字符串类型一样,Redis的字符串也是字符序列,它是Redis中最为基础的数据存储类型,具有以下特点:字符串类型是Redis中二进制安全的,这就意味着它们都有一个已知的长度,可以接受任何格式的数据(如信息交换中常用的Json格式字符串,甚至图像数据)。Redis中字符串类型最多可以容纳的数据长度可达512M。

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

string类型相关命令Redis字符串命令主要用于管理字符串值,主要包括以下命令:1、 set命令set命令用于设置指定键的值,具体格式为:set key value [ex 秒数] [px 毫秒数] [nx/xx]

一、最简单的命令

各个选项的含义如下:ex:设置指定的到期时间,单位为秒px:设置指定的到期时间,单位为毫秒,如果ex和px同时写,则以后面的有效期为准nx:如果对应key不存在则创建xx:如果对应key存在则修改其值

威尼斯wns.9778官网,1、获得符合规则的键名列表

示例1:

keys *
127.0.0.1:6379> set mykey "this is redis"OK

这里的*号,是指列出所有的键,同时*号也可以替换成其他支持glob风格通配符格式,具体规则如下:

在示例1中,用set命令来设置key、value,操作成功后终端打印出“OK”。2、get命令get命令用来获取指定键的值,如果键不存在,则返回nil,如果返回值不是字符串,则返回错误。具体格式为:get key

:匹配一个字符

示例2:

*:匹配任意个字符

127.0.0.1:6379> get mykey"this is redis"127.0.0.1:6379> get yourkey

[]:匹配括号间多大任一个字符,可以使用“-”表示范围,如[a-z]

3、mset命令mset命令用于一次性设置多个键和值,和set命令一样操作成功后返回字符串“OK”。具体格式为:mset key1 value1 key2 value2 ...

x:匹配字符x,用于转义,如需匹配问号,需要才能匹配

示例3:

这里说明一下,redis命令是不区分大小写的,还有就是keys命令是需要遍历Redis中所有的键的,当键很多时,很耗费性能的。所以在生产环境中要尽可能的不用。

127.0.0.1:6379> mset key1 "this is key1" key2 "this is key2"OK127.0.0.1:6379> get key1"this is key1"127.0.0.1:6379> get key2"this is key2"

例:

4、mget命令mget命令用于返回所有给定键的值。对于某个不存在值的键或者不存在的键,返回nil,否则返回指定键的值列表。具体格式为:mget key1 key2 ...

redis 127.0.0.1:6379 set name "joan"OKredis 127.0.0.1:6379 get name"joan"redis 127.0.0.1:6379 set aaa 1OKredis 127.0.0.1:6379 set bbb 2OKredis 127.0.0.1:6379 keys *1) "aaa"2) "name"3) "bbb"

示例4:

2、判断键是否存在

127.0.0.1:6379> set key1 "hello"OK127.0.0.1:6379> set key2 "world"OK127.0.0.1:6379> mget key1 key2 key31) "hello"2) "world"3) 
exists foo

5、setrange命令setrange命令将字符串中偏移量为offset后的子串覆盖为指定的值,该命令返回修改后的字符串的长度。具体格式为:setrange key offset value

如果存在返回证书类型1,否则返回0

如果偏移量offset > 原字符串长度,不足部分用0x00补全。示例5:

例:

127.0.0.1:6379> set key1 "Hello World"OK127.0.0.1:6379> setrange key1 6 "Redis" 11127.0.0.1:6379> get key1"Hello Redis"127.0.0.1:6379> setrange key1 15 "Hei" 18127.0.0.1:6379> get key1"Hello Redisx00x00x00x00Hei"
redis 127.0.0.1:6379 exists name(integer) 1redis 127.0.0.1:6379 exists n(integer) 0

6、setex命令setex命令用来设置指定键的值,并指定该键值对应的存在时间。具体格式如下:setex key seconds value

3、删除键

示例6:

 del foo
127.0.0.1:6379> setex key1 5 "hello" // 5s的过期时间OK127.0.0.1:6379> get key1 // 马上访问"hello"127.0.0.1:6379> get key1 // 5s后访问

返回的是删除的键的个数,这里说明也可以一次删除多个键,只需空格再加键就可以了。例如:

7、setnx命令setnx命令也可以用来设置指定键的字符串值,但该命令在设置前需要检查指定键是否已经存在。如果存在,则该命令的作用和set命令一样,操作完成后返回1,否则不重新设置已经存在的键的字符串值,直接返回0。具体格式如下:setnx key value

del foo bar

示例7:

如果删除一个键,这个键已经不存在了就会返回0 。

127.0.0.1:6379> setnx key1 "Hello" 1127.0.0.1:6379> setnx key1 "World" 0127.0.0.1:6379> get key1"Hello"

例:

8、append命令故名思议,append命令将字符串追加到指定键的原值上,返回值为新字符串的长度。具体格式为:append key value

redis 127.0.0.1:6379 keys *1) "aaa"2) "name"3) "bbb"redis 127.0.0.1:6379 del aaa bbb(integer) 2redis 127.0.0.1:6379 del aaa(integer) 0

示例8:

4、获得键值的数据类型

127.0.0.1:6379> set key1 "Hello "OK127.0.0.1:6379> append key1 "World" 11127.0.0.1:6379> get key1"Hello World"
type foo

9、getrange命令getrange命令获取字符串指定范围的子串,具体格式为:getrange key start stop

这里在重复一下上次说过的,redis的数据类型有:string、hash、list、set、zset。

getrange命令返回字符串中下标范围为[start,stop]范围的值。类似python,该命令下标支持负偏移量,右边第一个下标为-1。假设字符串的长度为length,getrange根据以下原则决定返回值:当start > length,则返回空字符串当stop >= length,则截取至字符串尾如果start > stop,则返回空字符串如果0 <= start <= stop < length,返回指定范围的子串

下面开始详细介绍每种数据类型的命令。

示例9:

二、字符串类型

127.0.0.1:6379> set key1 "This is getrange testing"OK127.0.0.1:6379> getrange key1 5 6"is"127.0.0.1:6379> getrange key1 100 200""127.0.0.1:6379> getrange key1 5 100"is getrange testing"

字符串类型是Redis中最基本的数据类型,他能存储任意形式的字符串,包括二进制数据。字符串类型也是其他四种数据类型的基础。也就是说,其他四种数据类型都是由字符串类型所组成的。

10、incr命令incr命令用于自增一个指定键对应的整数值并返回新的值。如果该键不存在,则创建该键,对应的value被置为0然后执行自增操作,如果该键对应的值不能转换为整数,则返回错误。具体格式为:incr key

常用命令如下:

示例8:

set key value #赋值,返回值是OK

127.0.0.1:6379> flushdbOK127.0.0.1:6379> set key1 10OK127.0.0.1:6379> incr key1 11127.0.0.1:6379> incr key2 1127.0.0.1:6379> set key2 "non"OK127.0.0.1:6379> incr key2 ERR value is not an integer or out of range127.0.0.1:6379>

get key #取值,返回值是对应键的值

10、incrby命令该命令与incr命令相似,不同的是:incrby命令可以自定义自增值,这也是命令中“by”的含义。具体格式为:incrby key k

incr key #递增数字,虽然是字符串类型,但如果可以是整型的话,也是可以使用此命令递增的,返回值是递增后的值,递增操作后,再次获取该key值,值为新值。

示例9:

例:

127.0.0.1:6379> set key1 10OK127.0.0.1:6379> incrby key1 5 15127.0.0.1:6379> get key1"15"
redis 127.0.0.1:6379 get age"32"redis 127.0.0.1:6379 incr age(integer) 33redis 127.0.0.1:6379 get age"33"

11、incrbyfloat命令从字面上我们就可以看出incrbyfloat是和incrby相似的命令,不同的是:incrbyfloat对指定键的值自增一个浮点数。该命令返回修改后的新值。具体格式为:incrbyfloat by f

本文由威尼斯wns.9778官网发布于计算机教程,转载请注明出处:Redis字符串类型的常用命令小结

关键词:

上一篇:详解用Redis实现Session功能

下一篇:没有了