0
点赞
收藏
分享

微信扫一扫

JAVA实现图书管理系统(思路,和完整代码)

和谐幸福的人生 2023-08-08 阅读 42
redis

redis存储数据是通过“键值对”形式,key固定是字符串,value有很多类型,例如:字符串,哈希表,列表,集合,有序集合等等。操作上述不同的数据结构的命令是不同的,而全局命令,能够搭配任意一个数据结构来使用。

keys 查询当前服务器上匹配的key

通过通配符来描述key的模样,匹配上述模样的key就能被查出来
准备工作

  1. ?匹配任意一个字符

image.png

  1. *匹配0个或者多个任意字符

image.png

  1. abcd只能匹配有a b c中的一个

image.png

  1. [^e] 排除e,其他都能匹配到

image.png

  1. [a-e]匹配a-e范围内的字符(闭区间)

image.png
:::info
keys命令的时间复杂度O(N),所以,在生产环境上禁止使用keys *查询出所有的key。在生产环境上key是非常多的,而redis是一个单线程服务器,执行keys *的时间就会很长,redis服务器会被阻塞,无法给其他客服端提供服务。
:::

exists 判定key是否存在

语法格式:exists key [key...],返回值:key存在的个数,时间复杂度:O(1),(redis组织这些key是按照哈希表的方式)
image.png
另外一种写法:
image.png
这种写法一般不采用,因为redis是客服端服务器结构,需要通过网络通信,分开写会产生更多轮次的网络通信,效率低,成本高。因此redis的很多命令都支持一次就能操作多个key的操作。

del 删除指定的key

语法格式:del key [key...],时间复杂度:O(1),返回值:删掉掉key的个数
image.png

expire 给指定的key设置时间

语法格式:expire key seconds设置过期时间是几秒,pexpire key milliseconds设置过期时间是几毫秒。 一旦key的存活时间超过这个指定时间,就会自动删除。

ttl 查看当前key的过期时间还剩多少

语法格式:ttl key返回过期时间还剩几秒,如果返回-1说明没给这个key设置过期时间,返回-2说明这个key已经被自动删除了。使用pttl key返回的是毫秒
image.png

redis的过期策略

redis中存在很多很多的key,这些key中可能有很大一部分都有过期时间,此时,redis服务器怎么知道哪些key已经过期了?哪些还未过期?

  1. 定期删除:
  1. 惰性删除
  1. 内存淘汰(后面篇章再细说)

type 返回key对应的value的数据结构

value可能的类型有:none,string,list, set, zset, hash等,时间复杂度:O(1)
image.png

举报

相关推荐

0 条评论