java string类型递增,【Redis学习系列】String类型

Redis 五种数据类型

String 类型

设置&取值

127.0.0.1:6379> keys *

(empty array)

127.0.0.1:6379> set name sitech #往redis中设置一个价值对

OK

127.0.0.1:6379> get name #从redis中取出key为name的值

"sitech"

截取子字符串

getrange key start end

127.0.0.1:6379> set word "I love China!" #设置字符串

OK

127.0.0.1:6379> GETRANGE word 1 5 #截取key为word的值,从第一位开始,第五位结束

" love"

127.0.0.1:6379> getrange word 0 -1 #从0开始,-1代表取整个长度

"I love China!"

setrange 重写字符串

Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。

127.0.0.1:6379> set name "hello world"

OK

127.0.0.1:6379> setrange name 6 redis

(integer) 11

127.0.0.1:6379> get name

"hello redis"

Getset 命令

先get某个key对应的值,再给该key赋新值

返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。当 key 存在但不是字符串类型时,返回一个错误。

127.0.0.1:6379> getset db mysql #get key为db的值,此时为空,然后set db的值为mysql

(nil)

127.0.0.1:6379> get db #查询db的值确实为mysql

"mysql"

127.0.0.1:6379> getset db oracl #获取db当前值(mysql)然后set db的值为oracl

"mysql"

127.0.0.1:6379> get db #获取db当前值

"oracl"

mget

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

127.0.0.1:6379> mget word name db hello #一次性获取key为word、name、db、hello的值

1) "I love China!"

2) "sitech"

3) "oracl"

4) (nil)

mset

Redis Mset 命令用于同时设置一个或多个 key-value 对。

127.0.0.1:6379> mset name huzd age 35 height 174 #同时设置多个值

OK

127.0.0.1:6379> keys *

1) "db"

2) "height"

3) "age"

4) "word"

5) "name"

setex

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

127.0.0.1:6379> setex online 60 33452 #设置online 的值为 33452 并且60秒过期

OK

127.0.0.1:6379> ttl online # 查询过期时间

(integer) 55

127.0.0.1:6379> ttl online

(integer) 51

127.0.0.1:6379> get online

"33452"

127.0.0.1:6379> ttl online

(integer) 1

127.0.0.1:6379> ttl online

(integer) -2

127.0.0.1:6379> get online

(nil)

127.0.0.1:6379>

setnx 当key不存在时设置

Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。==在分布式锁中经常用到==

127.0.0.1:6379> setnx name 1 #失败返回0

(integer) 0

127.0.0.1:6379> setnx age 34 #成功返回1

(integer) 1

strlen返回字符值长度

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

127.0.0.1:6379> keys *

1) "age"

2) "name"

127.0.0.1:6379> strlen name

(integer) 11

127.0.0.1:6379> strlen age

(integer) 2

127.0.0.1:6379> strlen abc

(integer) 0

incr 数值加1

Redis Incr 命令将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在 64 位(bit)有符号数字表示之内。

127.0.0.1:6379> get age

"34"

127.0.0.1:6379> incr age

(integer) 35

127.0.0.1:6379> incr age

(integer) 36

#key 不存在时

127.0.0.1:6379> get aage

(nil)

127.0.0.1:6379> incr aage

(integer) 1

127.0.0.1:6379> incr aage

(integer) 2

decr 数值减1

incrby 增加指定值 decrby 减去指定值

append

append 命令用于为指定的 key 追加值。如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。

127.0.0.1:6379> exists phone #key不存在

(integer) 0

127.0.0.1:6379> append phone iphone #默认直接设置值

(integer) 6

127.0.0.1:6379> get phone

"iphone"

127.0.0.1:6379> append phone 12

(integer) 8

127.0.0.1:6379> get phone

"iphone12"

本文由 huzd 创作,采用 知识共享署名4.0 国际许可协议进行许可本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名最后编辑时间

为:

2021/02/18 09:18

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值