Redis数据结构介绍
Redis
是一个key-value
的数据库,key一般是String
类型,不过value的类型多种多样:
贴心小建议:命令不要死记,学会查询就好啦
Redis 为了方便我们学习,将操作不同数据类型的命令也做了分组,在 官网 可以查看到不同的命令:
当然我们也可以通过Help命令来帮助我们去查看命令
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>
贴心小提示:在生产环境下,不推荐使用keys 命令,因为这个命令在key过多的情况下,效率不高
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 中的通用命令
在 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 进行交互,并实现各种数据操作。