Redis数据类型(字符串)

Posted 林夕Emma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis数据类型(字符串)相关的知识,希望对你有一定的参考价值。

Redis存放的字符串为二进制是安全的。字符串长度支持到512M

 

incr 

递增数字INCR key

当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递增后的值。

 

从例子可以看出,如果num不存在,则自动会创建,如果存在自动+1

 

 

127.0.0.1:6379> keys *
1) "test1"
2) "test"
127.0.0.1:6379> get test
"123"
127.0.0.1:6379> get test1
"abc"
127.0.0.1:6379> get test2
(nil)
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> keys *
1) "num"
2) "test1"
3) "test"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379>

 

 incrby

指定增长系数

127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> incrby num 2
(integer) 5
127.0.0.1:6379> incrby num 2
(integer) 7
127.0.0.1:6379> incrby num 2
(integer) 9
127.0.0.1:6379> incr num
(integer) 10
127.0.0.1:6379>

decr / decrby

减少指定的整数

127.0.0.1:6379> incr num
(integer) 10
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> decrby num 3

 

 incrbyfloat

 

整数时,第一次加可以得到正确结果,浮点数后再加浮点就会出现精度问题。

原来下面的例子是2.8.7版本

注意在新版本3.0.7中已经修正了这个浮点精度问题。

127.0.0.1:6379> set num
(integer) 131
127.0.0.1:6379> incrfloat num 0.7131.7127.0.0.1:6379> incrfloat num 0.7132.3999999999999999”

 

 append

向尾部追加值。如果键不存在则创建该键,其值为写的value,即相当于SET key value

返回值是追加后字符串的总长度。

 

127.0.0.1:6379> keys *
1) "num"
2) "test1"
3) "test"
127.0.0.1:6379> get test
"123"
127.0.0.1:6379> append test "abc"
(integer) 6
127.0.0.1:6379> get test
"123abc"
127.0.0.1:6379>

 

strlen

字符串长度,返回数据的长度,

如果键不存在则返回0

如果键值为空串,返回也是0

 

127.0.0.1:6379> get test
"123abc"
127.0.0.1:6379> strlen test
(integer) 6
127.0.0.1:6379> strlen tnt
(integer) 0
127.0.0.1:6379> set tnt ""
OK
127.0.0.1:6379> strlen tnt
(integer) 0
127.0.0.1:6379> exists tnt
(integer) 1
127.0.0.1:6379>

 

mset/mget

 

 

 

同时设置/获取多个键值

 

127.0.0.1:6379> flushall
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> mset a 1 b 2 c 3
OK
127.0.0.1:6379> mget a b c
1) "1"
2) "2"
3) "3"
127.0.0.1:6379>

 

以上是关于Redis数据类型(字符串)的主要内容,如果未能解决你的问题,请参考以下文章

Redis的列表(List)类型

简化Redis数据访问代码RedisTemplate

Redis五种基本数据类型的典型应用场景

RedisTemplate操作Redis数据结构-字符串类型

Redis五大数据类型详解

Redis五大数据类型(未完)