一、什么是redis
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。
它通过提供多种键 值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
结构类型 |
结构存储的值 |
结构的读写能力 |
STRING(字符串类型) |
可以是字符串、整数或者浮点数 |
对整个字符串或者字符串的其中一部分执行操作;对整数和浮点数执行自增 (increment)或者自减(decrement)操作 |
LIST(列表类型) |
一个链表,链表上的每个节点都包含 了一个字符串 |
从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪(trim);读 取单个或者多个元素;根据值查找或者移除元素 |
SET(集合类型) |
包含字符串的无序收集器(unordered collection),并且被包含的每个字符 串都是独一无二、各不相同的 |
添加、获取、移除单个元素;检查一个元素是否存在于集合中;计算交集、 并集、差集;从集合里面随机获取元素 |
HASH(散列类型) |
包含键值对的无序散列表 |
添加、获取、移除单个键值对;获取所有键值对 |
ZSET(有序集合) |
字符串成员(member)与浮点数分值 (score)之间的有序映射,元素的排 列顺序由分值的大小决定 |
添加、获取、删除单个元素;根据分值范围(range)或者成员来获取元素 |
二、redis应用场景
1. 缓存
2. 分布式集群架构中的session分离
3. 聊天室的在线好友列表
4. 任务队列。(秒杀、抢购、12306等等)
5. 应用排行榜
6. 网站访问统计
7. 数据过期处理(可以精确到毫秒)
三、Redis几个常用命令
类型 |
命令 |
描述 |
例子 |
string |
set |
赋值 |
set key value |
string |
get |
获取值 |
get key |
string |
incr |
自增(+1) |
incr key |
string |
decr |
自减(-1) |
decr key |
string |
setex |
赋值并指定key的存活时间 |
setex key second value |
key |
exists |
检查key是否存在 |
Exists key |
key |
expire |
设置key过期 |
Expire key seconds |
list |
lpush |
在list头部添加值 |
lpush key value [value2..] |
list |
rpop |
从尾部弹出key的值(删除) |
rpop key |
list |
llen |
返回key的长度 |
llen key |