redis --- string类型的使用

一、string类型使用

1.1、set key value参数解析

SET key value [NX | XX] [GET] [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]

EX秒--设置指定的过期时间,以秒为单位。

PX毫秒--设置指定的过期时间,以毫秒为单位。

EXAT timestamp seconds --设置密钥将过期的指定Unix时间,以秒为单位。

PXAT unix-time-milliseconds --设置密钥将过期的指定Unix时间,以毫秒为单位。

NX—仅当密钥不存在时才设置该密钥。

XX——仅在密钥已存在的情况下设置密钥。

KEETTL—保留与密钥相关联的生存时间。

GET—返回存储在key处的旧字符串,如果key不存在,则返回nil。如果键处存储的值不是字符串,则返回错误并中止SET。

参数:nx与xx使用

127.0.0.1:6379[1]> set k1 1 nx OK 127.0.0.1:6379[1]> get k1 "1" 127.0.0.1:6379[1]> set k1 1 nx (nil) 127.0.0.1:6379[1]> set k1 12 xx OK 127.0.0.1:6379[1]> set k1 12 xx OK 127.0.0.1:6379[1]> get k1 "12"

参数:get使用

127.0.0.1:6379[1]> set k1 1 get "12" 127.0.0.1:6379[1]> get k1 "1"

参数:ex使用

127.0.0.1:6379[1]> set k1 12 ex 20 OK 127.0.0.1:6379[1]> ttl k1 (integer) 16 127.0.0.1:6379[1]> ttl k1 (integer) 13 127.0.0.1:6379[1]> get k1 (nil)

参数:px使用

127.0.0.1:6379[1]> set k1 1 px 10000 OK 127.0.0.1:6379[1]> ttl k1 (integer) 6 127.0.0.1:6379[1]> get k1 (nil)

参数: exat使用

使用Java代码获取unix时间戳

public class UnixTest {
    public static void main(String[] args) {
        System.out.println(Long.toString(System.currentTimeMillis()/1000L));
    }
}
127.0.0.1:6379[1]> set k1 1 exat 1680448146 OK 127.0.0.1:6379[1]> ttl k1 (integer) 4 127.0.0.1:6379[1]> get k1 (nil)

参数: keepttl使用

127.0.0.1:6379> set k1 1 ex 60 OK 127.0.0.1:6379> ttl k1 (integer) 56 127.0.0.1:6379> set k1 12 keepttl OK 127.0.0.1:6379> ttl k1 (integer) 24 127.0.0.1:6379>

1.2、同时设置/获取多个键值

1、MEST key value [key value....]

2、MGET key [key......]

127.0.0.1:6379> mset k1 1 k2 2 k3 3 OK 127.0.0.1:6379> mget k1 k2 k3 1) "1" 2) "2" 3) "3" 127.0.0.1:6379> msetnx k3 3 k4 4 (integer) 0 127.0.0.1:6379> get k4 (nil) 127.0.0.1:6379> msetnx k4 4 k5 5 (integer) 1 127.0.0.1:6379> mget k3 k4 k5 1) "3" 2) "4" 3) "5"

1.3、获取/设置指定区间范围内的值

getrange/setrange

127.0.0.1:6379> set k1 123456789 OK 127.0.0.1:6379> get k1 "123456789" 127.0.0.1:6379> getrange k1 0 -1 "123456789" 127.0.0.1:6379> getrange k1 0 3 "1234" 127.0.0.1:6379> getrange k1 0 5 "123456" 127.0.0.1:6379> setrange k1 1 qwer (integer) 9 127.0.0.1:6379> get k1 "1qwer6789"

1.4、数值增减

注意:只能是数字才能进行加减

1、递增数字:INCR key

2、增加指定的整数:INCRBY key increment

3、递减数值:DECR key

4、减少指定的整数:DECRBY key decrement

127.0.0.1:6379> set k1 1 OK 127.0.0.1:6379> incr k1 (integer) 2 127.0.0.1:6379> incrby k1 10 (integer) 12 127.0.0.1:6379> decr k1 (integer) 11 127.0.0.1:6379> decrby k1 5 (integer) 6 127.0.0.1:6379> get k1 "6"

1.5、获取字符串长度和内容追加

1、 STRLEN key

2、APPEND key value

127.0.0.1:6379> set k1 123456 OK 127.0.0.1:6379> strlen k1 (integer) 6 127.0.0.1:6379> append k1 qwer (integer) 10 127.0.0.1:6379> get k1 "123456qwer"

1.6、分布式锁

1、setnx key value

2、setex(set with expire)键秒值/setnx(set if not exist)

127.0.0.1:6379> setex k1 60 12 OK 127.0.0.1:6379> setnx k1 13 (integer) 0 127.0.0.1:6379> get k1 "12"

1.7、getset(先get再set)

127.0.0.1:6379> set k1 1 OK 127.0.0.1:6379> getset k1 996 "1" 127.0.0.1:6379> get k1 "996"
经验分享 程序员 微信小程序 职场和发展