前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis教程03(String介绍)

Redis教程03(String介绍)

作者头像
用户4919348
发布2019-04-02 11:31:24
3040
发布2019-04-02 11:31:24
举报
文章被收录于专栏:波波烤鸭波波烤鸭

上篇文章中我们介绍了通用的相关命令,本文主要介绍String相关的命令

Redis教程02(五大数据类型简介)

命令

说明

set

设置key的值

get

获取对应的key的值

strlen

获取key的值的长度

append

在原有的value的基础上追加内容

incr

将key存储的内容加1

incrby

将key存储的内容加指定的值

incrbyfloat

将key存储的内容累加一个float类型的数据

decr

将key存储的内容减1

decrby

将key存储的内容减去指定的值

getrange

截取value的值

setrange

修改value的部分内容,根据偏移量修改

getset

获取设置key的值并返回原来的旧值

mget

批量获取值

mset

批量设置值

setex

设置key对应的value,同时设置过期时间,单位是秒

psetex

设置key对应的value,同时设置过期时间,单位是毫秒

setnx

只有在 key 不存在时设置 key 的值,set if not exists

msetnx

兼具了mset和setnx的特性

Set命令

设置指定 key 的值

代码语言:javascript
复制
127.0.0.1:6379> set name abc
OK

Get命令

返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。

代码语言:javascript
复制
127.0.0.1:6379> get name
"abc"
127.0.0.1:6379> get aaa
(nil)

StrLen命令

获取value的长度

代码语言:javascript
复制
127.0.0.1:6379> strlen name
(integer) 10

Append

如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾,如果key不存在则报错

代码语言:javascript
复制
127.0.0.1:6379> append name 123
(integer) 6
127.0.0.1:6379> get name
"abc123"
127.0.0.1:6379> append aaa
(error) ERR wrong number of arguments for 'append' command

Incr命令

将 key 中储存的数字值增一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误

代码语言:javascript
复制
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> incr age
(integer) 19 #正常数字增1
127.0.0.1:6379> incr aaa
(integer) 1  # 不存在 初始为0增1
127.0.0.1:6379> incr name # 类型不匹配报错
(error) ERR value is not an integer or out of range

IncrBy命令

将 key 所储存的值加上特定的值

代码语言:javascript
复制
127.0.0.1:6379> incrby age 5
(integer) 24
127.0.0.1:6379> incrby age 5
(integer) 29

IncrByFloat命令

将 key 所储存的值加上给定的浮点增量值

代码语言:javascript
复制
127.0.0.1:6379> incrbyfloat age 2.3
"31.3"
127.0.0.1:6379> incrbyfloat age 2.3
"33.6"

Decr

将 key 中储存的数字值减一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误

代码语言:javascript
复制
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> decr age
(integer) 17

DecrBy

将key中存储的数字减固定的值

代码语言:javascript
复制
27.0.0.1:6379> decrby age 8
(integer) 9
127.0.0.1:6379> decrby age 8
(integer) 1

GetRange

获取value值的子集 命令 getrange key start end

代码语言:javascript
复制
127.0.0.1:6379> getrange name 2 5
"c123"
127.0.0.1:6379> getrange name 4 6
"23"
127.0.0.1:6379> getrange name 2 6
"c123"

SetRange命令

用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始

代码语言:javascript
复制
127.0.0.1:6379> set name helloworld
OK
127.0.0.1:6379> get name
"helloworld"
127.0.0.1:6379> setrange name 5 redis
(integer) 10
127.0.0.1:6379> get name
"helloredis"

GetSet命令

获取设置key的值并返回原来的旧值

代码语言:javascript
复制
127.0.0.1:6379> getset name 波波烤鸭
"abc123"
127.0.0.1:6379> get name
"\xe6\xb3\xa2\xe6\xb3\xa2\xe7\x83\xa4\xe9\xb8\xad"

MGet命令

批量获取值

代码语言:javascript
复制
127.0.0.1:6379> mget name age address
1) "abc"
2) "1"
3) "sz"

MSet命令

批量设置值

代码语言:javascript
复制
127.0.0.1:6379> mset a1 a1 a2 a2 a3 a3 a4 a4
OK
127.0.0.1:6379> mget a1 a2 a3 a4
1) "a1"
2) "a2"
3) "a3"
4) "a4"

SetEx命令

设置key对应的value,同时设置过期时间,单位是秒

代码语言:javascript
复制
127.0.0.1:6379> setex name1 20 test
OK
127.0.0.1:6379> ttl name1
(integer) 16
127.0.0.1:6379> ttl name1
(integer) 6
127.0.0.1:6379> ttl name1
(integer) -2

PSetEx命令

这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位

代码语言:javascript
复制
127.0.0.1:6379> psetex name2 20000 aaa
OK
127.0.0.1:6379> ttl name2
(integer) 17
127.0.0.1:6379> pttl name2
(integer) 4020
127.0.0.1:6379> pttl name2
(integer) 381

SetNx命令

只有在 key 不存在时设置 key 的值,set if not exists

代码语言:javascript
复制
127.0.0.1:6379> setnx name aaa
(integer) 0
127.0.0.1:6379> get name
"abc"
127.0.0.1:6379> setnx name3 aaa
(integer) 1
127.0.0.1:6379> get name3
"aaa"

MSetNx命令

兼具了mset和setnx的特性,但是批量设置中只要有一个key存在,则所有的操作都失效。

代码语言:javascript
复制
127.0.0.1:6379> msetnx b1 bb1 b2 bb2 b3 bb3
(integer) 1
127.0.0.1:6379> mget b1 b2 b3
1) "bb1"
2) "bb2"
3) "bb3"
127.0.0.1:6379> msetnx a1 aaa b5 bbb b6 bbb
(integer) 0
127.0.0.1:6379> mget a1 b5 b6
1) "a1"
2) (nil)
3) (nil)

好了本文到此为止 更多资料欢迎参考官网手册

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Set命令
  • Get命令
  • StrLen命令
  • Append
  • Incr命令
  • IncrBy命令
  • IncrByFloat命令
  • Decr
  • DecrBy
  • GetRange
  • SetRange命令
  • GetSet命令
  • MGet命令
  • MSet命令
  • SetEx命令
  • PSetEx命令
  • SetNx命令
  • MSetNx命令
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档