目录
一、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"