Redis基础知识笔记

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对象中全部域相关联的值

相关文章
相关标签/搜索