什么是Redis?
Redis开源,遵循BSD、基于内存数据存储常常被用于作为数据库 缓存 消息中间件。redis数据存放在内存中,读写快,断点立即消失,机制:持久化机制 内存数据 定期写入磁盘 总结:redis是一个内存型的数据库,可用来做缓存 消息中间件等
Redis的特点
- Redis是一个高性能key/value内存型数据库
- Redis支持丰富的数据类型(String list set zset hash)
- Redis支持持久化
- Redis单线程保证了线程安全问题
Redis数据库的相关指令
数据库操作指令
redis的默认配置来启动reids服务后,默认有16个库编号从0-15 可以使用 select 库编号 来选择一个redis的库 库与库之间的数据是相互隔离的
清空当前的库 FLUSHDB
清空全部的库 FLUSHALL
redis客户端显示中文 ./redis-cli -p 7000 --raw
操作key相关指令
1.DEL指令
语法:DEL key [key ....]
作用:删除一个或多个key,不存在的key 会被忽略
可用版本: >= 1.0.0
返回值:被删除key的数量
2.EXISTS指令
语法:EXISTS key
作用: 检查给定的key是否存在
可用版本:>= 1.0.0
返回值: 若key存在,返回1,否则返回0
3.EXPIRE
语法:EXPIRE key seconds
作用:为给定key 设置生存时间 当key过期(生存时间为0)他会被自动删除
可用版本:>= 1.0.0
时间复杂度:O(1)
返回值:设置成功返回1
4.KEYS
语法:KEYS pattern
作用:查找所有符合给定模式pattern的key
语法:
keys * 匹配数据库中所有的key
keys h?llo 匹配hello hallo hxllo等
keys h*llo 匹配hllo和heeeeeeeeeello等
heys h[ae]llo 匹配hello 和 hallo 但是不匹配hillo。特殊符号用"\"隔开
可用版本: >= 1.0.0
返回值:符合给定模式的key列表
5.MOVE
语法:move key db
作用:将当前数据库的key移动到给定的数据库db当中
可用版本:>= 1.0.0
返回值:移动成功返回1 失败返回0
6.PEXPIRE
语法:PEXPIRE key milliseconds
作用:这个命令和EXPIRE命令的作用类似,但是它以毫秒为单位设置key的生存时间,而不像EXPIRE命令那样,以秒为单位。
可用版本:>= 2.6.0
时间复杂度: O(1)
返回值:设置成功返回1,key不存在或者设置失败返回0
7.PEXPIREAT
语法:PEXPIREAT key milliseconds-timestamp
作用:这个命令和EXPIREAT命令类似,但它以毫秒为单位设置key的过期unix时间戳,而不像EXPIREAT那样以秒为单位。
可用版本:>=2.6.0
返回值:设置成功返回1,key不存在或者设置失败返回0
8.TTL
语法:TTL key
作用:以秒为单位,返回给定key的剩余生存时间
可用版本:>= 1.0.0
返回值:当key不存在 返回-2 当key存在但没有设置剩余生存时间返回 -1,否则以秒为单位,返回key的剩余生存时间
注意:在Redis2.8以前,当key不存在,或者key没有设置剩余生存时间时,命令都返回-1.
9.PTTL
语法 : PTTL key
作用 : 这个命令类似于TTL 命令,但它以毫秒为单位返回key 的剩余生存时间,而不是像TTL 命令那样,以秒为单位。
可用版本: >= 2.6.0
返回值: 当key 不存在时,返回-2 。当key 存在但没有设置剩余生存时间时,返回-1 。否则,以毫秒为单位,返回key 的剩余生存时间。
注意 : 在Redis 2.8 以前,当key 不存在,或者key 没有设置剩余生存时间时,命令都返回-1 。
10.RANDOMKEY
语法:RANDOMKEY
作用:从当前数据库中随机返回(不删除)key
可用版本:>= 1.0.0
返回值: 当数据库不为空时,返回一个key,当数据库为空时返回nil。
11.RENAME
语法: rename key newkey
作用: 将key改名为newkey,当key 和newkey 相同,或者key 不存在时,返回一个错误。当newkey 已经存在时,RENAME 命令将覆盖旧值。
可用版本: >= 1.0.0
返回值: 改名成功时提示OK 失败时候返回一个错误
12.TYPE
语法: TYPE KEY
作用: 返回key所存储的值的类型
可用版本:>= 1.0.0
返回值:
none(key 不存在)
string(字符串)
list(列表)
set(集合)
zset(有序集合)
hash(哈希表)