一文打通redis中的String类型

这篇具有很好参考价值的文章主要介绍了一文打通redis中的String类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

基本介绍

基本语法

常用命令解读

概述 

SETNX key value 

SETNX key value

GETRANGE key start end

GETSET key value

GETBIT key offset

MGET key1 [key2..]

STRLEN key


基本介绍

①String是Redis最基本的类型,一个key对应一个value。

②String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象

③String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M

String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList

基本语法

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:

语法

redis 127.0.0.1:6379> COMMAND KEY_NAME

实例

redis 127.0.0.1:6379> SET w3ckey redis
OK
redis 127.0.0.1:6379> GET w3ckey
"redis"

在以上实例中我们使用了 SET 和 GET 命令,键为 w3ckey。 

常用命令解读

概述 
序号 命令及描述
1 SET key value 设置指定 key 的值
2 GET key 获取指定 key 的值。
3 GETRANGE key start end 返回 key 中字符串值的子字符
4 GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
5 GETBIT key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
6 MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值。
7 SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
8 SETEX key seconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
9 SETNX key value 只有在 key 不存在时设置 key 的值。
10 SETRANGE key offset value 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
11 STRLEN key 返回 key 所储存的字符串值的长度。
12 MSET key value [key value ...] 同时设置一个或多个 key-value 对。
13 MSETNX key value [key value ...] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
14 PSETEX key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
15 INCR key 将 key 中储存的数字值增一。
16 INCRBY key increment 将 key 所储存的值加上给定的增量值(increment) 。
17 INCRBYFLOAT key increment 将 key 所储存的值加上给定的浮点增量值(increment) 。
18 DECR key 将 key 中储存的数字值减一。
19 DECRBY key decrement key 所储存的值减去给定的减量值(decrement) 。
20 APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
SETNX key value 

Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。

redis> EXISTS job                # job 不存在
(integer) 0
 
redis> SETNX job "programmer"    # job 设置成功
(integer) 1
 
redis> SETNX job "code-farmer"   # 尝试覆盖 job ,失败
(integer) 0
 
redis> GET job                   # 没有被覆盖
"programmer"

返回值:设置成功,返回 1 。 设置失败,返回 0 。 

SETNX key value

 Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。

redis 127.0.0.1:6379> SETEX mykey 60 redis
OK
redis 127.0.0.1:6379> TTL mykey
60
redis 127.0.0.1:6379> GET mykey
"redis

返回值:设置成功时返回 OK 。 

GETRANGE key start end

 Redis Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。

redis 127.0.0.1:6379> SET mykey "This is my test key"
OK
redis 127.0.0.1:6379> GETRANGE mykey 0 3
"This"
redis 127.0.0.1:6379> GETRANGE mykey 0 -1
"This is my test key"

返回值:截取得到的子字符串。

GETSET key value

Redis Getset 命令用于设置指定 key 的值,并返回 key 旧的值。

redis 127.0.0.1:6379> GETSET mynewkey "This is my test key"
(nil)
redis 127.0.0.1:6379> GETSET mynewkey "This is my new value to test getset"
"This is my test key"

 返回值:返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。

当 key 存在但不是字符串类型时,返回一个错误。

GETBIT key offset

 Redis Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

# 对不存在的 key 或者不存在的 offset 进行 GETBIT, 返回 0
 
redis> EXISTS bit
(integer) 0
 
redis> GETBIT bit 10086
(integer) 0
 
 
# 对已存在的 offset 进行 GETBIT
 
redis> SETBIT bit 10086 1
(integer) 0
 
redis> GETBIT bit 10086
(integer) 1

返回值:字符串值指定偏移量上的位(bit)。当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0 。


MGET key1 [key2..]

Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。

redis 127.0.0.1:6379> SET key1 "hello"
OK
redis 127.0.0.1:6379> SET key2 "world"
OK
redis 127.0.0.1:6379> MGET key1 key2 someOtherKey
1) "Hello"
2) "World"
3) (nil)

返回值:一个包含所有给定 key 的值的列表。 

STRLEN key

Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。

# 对不存在的 key 执行 APPEND
 
redis> EXISTS myphone               # 确保 myphone 不存在
(integer) 0
 
redis> APPEND myphone "nokia"       # 对不存在的 key 进行 APPEND ,等同于 SET myphone "nokia"
(integer) 5                         # 字符长度
 
 
# 对已存在的字符串进行 APPEND
 
redis> APPEND myphone " - 1110"     # 长度从 5 个字符增加到 12 个字符
(integer) 12
 
redis> GET myphone
"nokia - 1110"

返回值:字符串值的长度。 当 key 不存在时,返回 0。文章来源地址https://www.toymoban.com/news/detail-664901.html

到了这里,关于一文打通redis中的String类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis的五种数据类型(string、hash 、list、set、zset)

                     Redis 提供了丰富的数据类型,常见的有五种: String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合) 。         String 是最基本的 key-value 结构,key 是唯一标识,value 是具体的值,value其实不仅是字符串, 也可以是数字(整

    2024年01月25日
    浏览(54)
  • Redis 数据类型及其常用命令一(string、list、set、zset、hash)

    1、简介         Redis 的常用数据类型有十种,分别为:string、list、set、zset、hash、geo、hyperloglog、bitmap、bitfield、stream。熟练使用各种数据类型,能够快速结合场景进行使用。 注:我们所说的数据类型是指 value 的数据类型,key 都是字符串。 所有类型的命令查看:help @数据类

    2024年03月13日
    浏览(58)
  • Redis之数据类型String、List、Hash、Set、Sorted Set(详细)

    一、String数据类型 1、SET/GET/APPEND/STRLEN (1) APPEND (2) SET/STRLEN 2、 INCR/ DECR/INCRBY/DECRBY (1)INCR/ DECR (2) INCRBY/DECRBY INCRBY key increment:key值增加指定的整数DECRBY key decrement:key值减少指定的整数  3、GETSET 4、 SETEX  5、SETNX 6、MSET/MGET/MSETNX  二、List数据类型 1、LPUSH/LPUSHX/

    2024年02月11日
    浏览(45)
  • 【MySQL】数据库中这么多数据类型你真的了解吗?一文看懂不同数据类型有何区别

    创建表t1,将name列数据类型设置为要tinyint 插入属性值:由于这里是tinyint类型,取值范围是【-128–127】,当插入这个范围内的数据显示成功,范围之外失败 使用tinyint unsigned类型创建表t2 无符号类型取值范围【0,255】,这点与C/C++一样 2.1.1 小结 MySQL对于数据类型不合法行为采

    2024年02月13日
    浏览(44)
  • Mybaits:数据库查询类型不匹配,java.sql.SQLDataException: Cannot determine value type from string

    目录 一.问题描述 二.源码分析 三.总结 事情的起因是用MybaitsPlus查询数据库过程中,查询结果与要封装的实体类字段类型对应不上,类似这样: 数据库查询结果: java实体类: 字段名字和实体类的名字类型都能对应上,但最后的查询结果却会报错java.sql.SQLDataException: Cannot d

    2024年02月03日
    浏览(67)
  • 一文详解python中的数据库操作

    最近做毕设,需要添加个数据库,记录一下。 重点介绍数据库API接口中的连接对象和游标对象 1. 连接对象 数据库连接对象主要提供获取数据库游标对象和提交/回滚事务的方法,以及关闭数据库连接。 使用connect函数获取对象,该函数有多个参数: host 主机名 database/db 数据库

    2024年02月07日
    浏览(42)
  • Redis中的数据类型

    Redis存储的是key-value结构的数据,其中key是字符串类型,value有 5种 常用的数据类型: 字符串 string 哈希 hash 列表 list 集合 set 有序集合 sorted set

    2024年02月12日
    浏览(30)
  • redis String类型命令

    Redis的String类型是一种简单的键值对数据结构,常用的String类型命令有: SET key value:设置指定key的值为value。 GET key:获取指定key的值。 DEL key:删除指定key及其对应的值。 INCR key:将指定key的值加1。 DECR key:将指定key的值减1。 INCRBY key increment:将指定key的值增加指定的增量

    2024年02月13日
    浏览(40)
  • Redis——String类型详解

    Redis中的字符串直接按照二进制的数据存储,不会有任何的编码转换,因此存放什么样,取出来的时候就什么样。而MySQL默认的字符集是拉丁文,如果插入中文就会失败 Redis中的字符串类型不仅可以存放文本数据,还可以存放整数,JSON,xml,图片,视频,音频等等(但是音频

    2024年02月13日
    浏览(45)
  • Redis数据迁移过程,使用jedis客户端发送命令,需要注意string和byte类型的命令,如果使用的转换字符编码不一致,会导致丢数据

    string与byte来回转换,需要指定一样字符编码规则 详细原因请参考: 关于Java中bytes到String的转换-阿里云开发者社区   简单来说 (1)string和byte转换之间需要指定字符编码参数Charset.defaultCharset(),默认不指定的情况下,使用的是utf-8编码,所以一般情况下相互转换使用的都是同

    2023年04月09日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包