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"
