Redis概念:redis是把整个数据库全加载到内存中进行操做,经过异步操做按期把数据库数据flush到硬盘上保存redis
Redis优势:数据库
1)支持丰富的数据类型:string、hash、set、list、sorted set缓存
2)支持两种数据持久化方式:快照、aof(追加)安全
3)支持主从复制dom
key相关命令异步
exist key:测试指定key是否存在,返回1表示存在,返回0表明不存在测试
del key1 key2...keyN:删除给定的key,返回删除key的数目,返回0表示给定的key不存在spa
type key:返回给定key的value类型。返回none表示不存在key视频
keys pattern:返回匹配指定模式的全部key对象
expire key seconds:设置给定key的过时时间
randomkey:返回从当前数据库中随机选择的一个key,若是当前数据是空的,返回空串
rename oldkey newkey:重命名key,若是newkey存在将被覆盖,返回1表示成功,返回0表示失败
renamenx oldkey newkey:重命名key
ttl key:返回设置过时时间key的剩余秒数,-1表示key不存在或者没有设置过时时间
move key db-index:将key从当前数据库移动到指定的数据库。返回1表示成功,返回0表示key不存在或者已经在指定的数据库中
String类型
概念:string类型是二进制安全的,能够把图片和视频文件保存到string中。能够用来缓存一些静态文件
经常使用命令:
set key value:设置key对应string类型的值,返回1表示成功,返回0表示失败
setnx key value:若是key不存在,设置key对应的string类型的值,若是key存在,返回0
get key:获取key对应的string值,若是key不存在返回nil
getset key value:先获取key的值,再设置key的值,若是key不存在返回nil
mget key1 key2...keyN:一次获取多个key的值,若是对应key不存在,则对应返回nil
mset key1 key2...keyN valueN:一次设置多个key值,成功返回1,表示全部值都设置,失败返回0,表示没有任何值被设置
msetnx key1 key2...keyN valueN:一次设置多个key的值,可是不会覆盖已存在的key
incr key:向key对应值加1,并返回新的值
decr key:向key对应的值减1,decr一个不存在key,则设置key为-1
incrby key integer:向key对应的值加上一个指定的整数integer,key不存在会设置key,并认为原来的key值为0
decrby key integer:向key对应的值减去一个指定整数integer。decrby彻底是为了可读性
List类型
概念:List数据类型是指key对应的value是一个双向链表结构,全部List类型提供链表支持的全部操做。能够用来实现消息队列
经常使用命令:
lpush key string:向key对应的list头部添加一个字符串元素,成功返回1,失败返回0
rpush key string:向key对应得list尾部添加一个字符串元素,成功返回1,失败返回0
llen key:返回key对应的list长度,若是key不存在返回0,若是key对应类型不是list,返回错误
lrange key start end:返回指定区间内的元素,下表从0开始,负值表示从链表尾部开始计算,-1表示倒数第一个元素,key不存在返回空列表
ltrim key strat end:截取list指定区域元素,成功返回1,key不存在返回错误
lset key index value:设置list指定下标的元素值,成功返回1,key或者下标不存在返回错误
lrem key count value:从list头部或尾部删除必定数量的匹配value的元素,返回删除元素的数量。count为0表示删除所有
lpop key:从list头部删除并返回删除元素。若是key对应list不存在或者是空返回 nil,若是key对应值不是list返回错误
rpop key:从list尾部删除并返回删除元素
blpop key1...keyN timeout:从左到右扫描key1...keyN,返回对第一个非空list进行lpop操做并返回。若是全部list为空或者不存在,阻塞timeout秒,timeout为0表示一直阻塞
brpop key1...keyN timeout:功能与blpop相似,blpop从头部删除,brpop从尾部删除
Set类型
概念:是一种无序集合,在redis内部H经过HashTable内部实现,查找和删除元素的时间复杂度为O(1)。set类型的优势是快速查找元素是否存在,用于记录一些不能重复的数据。能够用做投票系统
经常使用命令:
sadd key member:添加一个string元素到key对应的set集合中,成功返回1,若是元素在集合中,返回0
srem key member:从key对应set中移除给定的元素,成功返回1
spop key:删除并返回key对应set中随机一个元素
srandmember key:随机取set中的一个元素,但不删除元素
smove srckey dstkey member:从srckey对应set中移除member并添加到dstkey对应的set中,整个操做是原子的。成功返回1,若是member在srckey中不存在返回0,若是key对应的值不是set类型,返回错误
scard key:返回set的元素个数,若是set是空或者key不存在返回0
sismember key member:判断member是否在set中,存在返回1,不存在或者key对应的set集合不存在返回0
sinter key1 key2...keyN:返回全部给定key的交集
sinterstore dstkey key1...keyN:返回全部给定key的交集,并保存在dstkey对应的set集合中
sunion key1 key2...keyN:返回全部给定key的并集
sunionstore dstkey key1...keyN:返回全部给定key的并集,同时把并集保存到dstkey对应的set集合中
sdiff key1 key2...keyN:返回全部给定集合的差集
sdiffstore dstkey key1...keyN:返回全部给定key的差集,同时把差集保存到dstkey对应的set集合中
smembers key:返回key对应的set全部集合,结果是无序的
Sorted Set类型
概念:是string类型元素的集合,属于有序集合,经过一个double类型的整数进行排序。Sorted set经过SkipList(跳跃表:负责排序)和HashTable(负责保存数据)组合完成。可用做排行榜应用
经常使用命令:
zadd key score member:添加元素member到集合,元素在集合存在则更新对应score
zrem key member:删除指定元素,1表示成功,若是元素不存在返回0
zincrby key incr member:增长对应member的score值,而且从新排序,返回更新后的score值
zrank key member:返回指定元素值集合中的排名,集合元素按score从小到大排序的
zrevrank key member:同zrank同样,但集合中元素score按从大到小排序
zrange key start end:从集合中指定区间的元素,返回结果按score顺序排序
zrevrange key start end:从集合中指定区间的元素,返回结果按score逆序排序
zrangebyscore key min max:返回集合在给定区间的元素
zcount key min max:返回集合中在给定区间的数量
zcard key:返回集合中元素个数
zscore key element:返回给定元素对应的score
zremrangebyrank key min max:删除集合中排序在给定区间的元素
zremrangebyscore key min max:删除集合中score在给定区间的元素
Hash类型
概念:Hash类型是每一个key对应一个HashTable,添加、删除和修改操做的时间复杂度O(1)。Hash类型适合应用于存储对象
经常使用命令:
hset key filed value:设置key对应的Hash对象中指定域的值
hget key filed:返回filed域关联的值,若是该域不存在或者key对应的hash对象不存在,返回nil
hmget key filed1...filedN:返回存储在key对应的hash对象中各个指定域相关联的值
hmset key filed1 value1 filedN...valueN:设置存储在key对应的hash对象中指定域的值
hincrby key filed integer:将存储在key对应的hash对象中filed域相关联的值加上integer指定的值
hexists key filed:查看指定filed域是否已经存在
hdel key filed:删除指定的filed域,成功返回1
hlen key:返回key对应的hash对象中filed数,若是key不存在,返回0
hkeys key:返回key对应的hash对象中全部的filed名称
hvals key:返回key对应的hash对象中的全部值
hgetall key:返回key对应hash对象中全部域相关联的值