Redis基础
Redis是一个开源的Key-Value存储系统。它支持存储的value类型相对较多,包括String(字符串)、List(链表)、Set(集合)、Zset(Sorted Set,有序集合)和Hash(哈希类型)。
这些数据都支持push/pop、add/remove以及取交集、并集和差集等更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。
为了保证效率,数据都缓存在内存中。同时Redis会周期性地把更新的数据写入磁盘或者把修改该操作写入追加的记录文件中。
1.Redis的优势
(1)性能极高:Redis读取数据的速度课达到110000次/s,写的速度可达到81000次/s。
(2)丰富的数据类型:Redis支持String、List、Zset、Set、Hash五大数据类型。
(3)原子性:Redis的所有操作都是原子性的。
(4)丰富的特性:Redis还有支持publish/subscrible、通知Key过期等特性。
2.关于Key的相关命令
Redis是一个Key-Value存储系统,所以对于Key的操作尤为重要,下面是关于Key的常用操作命令:
命令 |
备注 |
keys * |
查询当前库的所有键 |
exists <key> |
判断某个键是否存在,返回1代表存在,返回0代表不存在 |
type <key> |
查看键的类型 |
del <key> |
删除某个键 |
expire <key> <seconds> |
为键值设置过期时间,单位为秒 |
ttl <key> |
查看某个键的过期时间,-1表示永不过期,-2表示已过期 |
dbsize |
查看当前数据库的Key的数量 |
flushdb |
清空当前库 |
flushall |
清空全部库 |
3.String类型命令操作
String类型是Redis数据库最基本的数据类型,在一个Redis中,字符串value最多可以是512M。
命令 |
备注 |
get <key> |
获取对应键的值 |
set <key> <value> |
设置键值对 |
append <key> <value> |
将给定的value值追加到原值的末尾 |
strlen <key> |
获取对应键的值的长度 |
setnx <key> <value> |
只有在Key不存在时设置Key的值 |
incr <key> |
将Key的值加1,只能对数字值进行操作,如果初始值为空,新增值为1 |
decr <key> |
将Key的值减1,只能对数字值进行操作,如果初始值为空,新增值为-1 |
incrby <key> <值> |
将Key的值以自定义的值增加 |
decrby <key> <值> |
将Key的值以自定义的值减少 |
mset <k1> <v1> <k2> <v2> ... |
设置一个或多个键值对 |
mget <k1> <k2> <k3> ... |
获取一个或多个键的值 |
msetnx <k1> <v1> <k2> <v2> ... |
所有的键Key不存在时,设置一个或多个键值对 |
getrange <key> <begin> <end> |
获取值的范围 |
setrange <key> <begin> <value> |
从起始位置开始,使用value覆写键Key中的字符串值 |
setex <key> <second> <value> |
设置键值的同时设置过期时间 |
getset <key> <value> |
设置新值的同时获得旧值 |