文章目录
- Redis数据结构介绍
- Redis 通用命令
- 命令演示
- KEYS
- DEL
- EXISTS
- EXPIRE
- RedisTemplate 中的通用命令
本篇文章介绍 Redis 的通用命令, 通用命令在 Redis 的所有数据类型下都使用, 学好通用命令可以让我们更好的使用 Redis.
Redis数据结构介绍
Redis
是一个key-value
的数据库,key一般是String
类型,不过value的类型多种多样:
String: snow
Hash: {"name":"snow", "age":20}
List:[A, B, C, D, A, B, C, D]
Set:[A, B, C, D]
SSet:{A:1, B:2, C:3}
GEO:{A:{100.0, 20.0}}
BitMap: 0101010101010101
Redis 为了方便我们学习,将操作不同数据类型的命令也做了分组,在 官网 可以查看到不同的命令.
Redis 通用命令
通用指令是部分数据类型的,都可以使用的指令,常见的有:
KEYS
:查看符合模板的所有keyDEL
:删除一个指定的keyEXISTS
:判断key是否存在EXPIRE
:给一个key设置有效期,有效期到期时该key会被自动删除TTL
:查看一个KEY的剩余有效期
通过 help [command]
可以查看一个命令的具体用法,例如:
命令演示
KEYS
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379>
# 查询以a开头的key
127.0.0.1:6379> keys a*
1) "age"
127.0.0.1:6379>
DEL
127.0.0.1:6379> help del
DEL key [key ...]
summary: Delete a key
since: 1.0.0
group: generic
127.0.0.1:6379> del name #删除单个
(integer) 1 #成功删除1个
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 #批量添加数据
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
4) "age"
127.0.0.1:6379> del k1 k2 k3 k4
(integer) 3 #此处返回的是成功删除的key,由于redis中只有k1,k2,k3 所以只成功删除3个,最终返回
127.0.0.1:6379>
127.0.0.1:6379> keys * #再查询全部的key
1) "age" #只剩下一个了
127.0.0.1:6379>
EXISTS
127.0.0.1:6379> help EXISTS
EXISTS key [key ...]
summary: Determine if a key exists
since: 1.0.0
group: generic
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists name
(integer) 0
EXPIRE
127.0.0.1:6379> expire age 10
(integer) 1
127.0.0.1:6379> ttl age
(integer) 8
127.0.0.1:6379> ttl age
(integer) 6
127.0.0.1:6379> ttl age
(integer) -2
127.0.0.1:6379> ttl age
(integer) -2 #当这个key过期了,那么此时查询出来就是-2
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set age 10 #如果没有设置过期时间
OK
127.0.0.1:6379> ttl age
(integer) -1 # ttl的返回值就是-1
RedisTemplate 中的通用命令
我们在实际项目中操作 Redis 更多是通过 封装的 Redis 命令的根据去完成的, 例如: 在 RedisTemplate
中使用 Redis
的通用命令,可以通过 RedisTemplate
的操作方法进行调用。以下是一些常用的通用命令以及它们在 RedisTemplate
中的使用示例:
- 设置键值对
SET key value: 设置指定键的值。
redisTemplate.opsForValue().set("myKey", "myValue");
GET key: 获取指定键的值。
String value = (String) redisTemplate.opsForValue().get("myKey");
- 删除键
DEL key [key …]: 删除指定的一个或多个键。
redisTemplate.delete("myKey");
- 判断键是否存在
EXISTS key: 判断指定的键是否存在。
boolean exists = redisTemplate.hasKey("myKey");
- 设置过期时间
EXPIRE key seconds: 设置指定键的过期时间(秒)。
redisTemplate.expire("myKey", 60, TimeUnit.SECONDS);
- 获取键的剩余过期时间
TTL key: 获取指定键的剩余过期时间(秒)。
Long ttl = redisTemplate.getExpire("myKey");
- 其他操作
INCR key: 将指定键的值递增1。
redisTemplate.opsForValue().increment("myKey");
DECR key: 将指定键的值递减1。
redisTemplate.opsForValue().decrement("myKey");
这些是 Redis
中的一些通用命令以及它们在 RedisTemplate
中的使用方法,通过 RedisTemplate
可以方便地与 Redis
进行交互,并实现各种数据操作。