Redis简介
Redis是一个高性能的key-value非关系数据库。与memcached一样,为了保证效率,数据都是缓存在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者把修改的数据写入追加的记录文件,并在此基础上实现了master-slave(主从)同步。
Redis五大类型
- String类型
可以存储二进制数据、图片和json对象。
使用场景:
一般做一些复杂的技术功能的缓存。 - hash结构
使用场景:
这里value存放的是结构化对象,比较方便操作其中的某个字段,在单点登录的时候可以使用,用这种数据结构存储用户信息,以cookieID作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。
内存结构 - list
list可以存储一个有序的字符串列表,常用的操作是向两端添加元素。
列表类型内部是通过双向链表实现的,获取越接近两端的元素越快,但是通过索引访问元素较慢。
使用场景:使用list数据结构,可以实现简单的消息队列的功能。另外,可以利用lrange指令,做基于Redis的分页功能。
- set
字符串的无序集合,不允许存在重复的成员。字符串的无序集合,不允许存在重复的成员。
多个集合类型之间可以进行交集、并集、差集的计算。
使用场景:
因为set存放的是一堆不重复的数据,所以可以做全局去重的功能。另外,使用set的交集,并集,差集的操作,可以计算共同爱好,全部的爱好,自己独有的爱好等。
- sorted set
在集合类型的基础上添加了排序的功能。
使用场景:
sorted set多了一个权重参数score,集合中的元素能够按照score进行排序,可以做排行榜应用,取Top N操作。 - 其他命令
6.1 获得符合规则的键名列表
KEYS pattern
6.2判断一个键是否存在
EXISTS key 如果键存在则返回整数类型 1,否则返回 0。
6.3删除键
DEL key [key ...] 可以删除一个或者多个键,返回值是删除的键的个数
6.4获得键值的数据类型
TYPE key