目录
redis 支持很多数据结构,也就是一个 value 可以是一些复杂的数据结构。redis 的这些键值对,是通过 哈希表 的方式来组织。但是它的某个值(value),又可以是一些数据结构。
redis 是客户端-服务器的结构,是通过网络来进行传输数据的。所以 redis 很多命令都是支持一次能操作多个 key / 操作。
redis 的快,是相对于 Mysql 等。
set:通过 key 来存储value
get:通过 key 来获得value
set key?value
get key
keys?: 通过特殊符号(通配符)来返回满足样式的 key,时间复杂度:O(n)。
keys?pattern;
?
返回 key 存在的个数(可以针对多个key),时间复杂度O(1)/O(N)(N为检查key的个数)。
exists key [key ...]
返回删除 key 的个数(可以针对多个key),时间复杂度O(1)/O(N)(N为检查key的个数)。
del key [key ...]
?这个删除操作是否非常危险?
1. redis 作为缓存。此时 redis 里存的只是一个热点数据,全量数据是在 mysql 数据库中。此时,如果把 redis 中的 key 删除了几个,一般来说,问题不大~~。但是,当然如果把所有的数据或者一大半数据一下都干没,这种影响会很大(本来 redis 是帮 mysql 负重前行,redis 没数据了,大部分的请求就直接打给mysql 然后就容易把 mysgl 搞挂)
2.? redis 作为数据库,误删数据影响很大。
3.? redis 作为消息队列(mq),需要具体情况具体分析。
4.? 别犯这个错误就不危险!!!
key 存在时间超过指定的值,就会被自动删除。返回 1 表示设置成功,0 表示设置失败。
expire key seconds(秒)
pexpire key ms(毫秒)
返回剩余过期时间,-1 表示没有关联过期时间,-2 表示 key 不存在。
ttl key