- Redis介绍
Redis(Remote Dictionary Server)(远程数据服务)的缩写,由意大利人 antirez(Salvatore Sanfilippo)开发的一款内存高速缓存数据库。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
简单说 Redis 是一个高性能的 key-value 数据库。每秒可执行操作高达10万+QPS
- Redis特点
1.支持数据持久化,可将内存中的数据保存在磁盘,重启时再次加载
2.支持 KV 类型数据,也支持其他丰富的数据结构存储
3.支持数据备份,即 master-slave 模式的数据备份
- Redis数据结构
STRING:字符串、整数或浮点数
LIST:列表,可存储多个相同的字符串
SET:集合,存储不同元素,无序排列
HASH:散列表,存储键值对之间的映射,无序排列
ZSET:有序集合,存储键值对,有序排列
- Redis操作使用
1.Key
Key的命名规则不同于一般语言,键盘上除了空格、\n换行外其他的大部分字符都可以使用。像“my key”和“mykey\n”这样包含空格和换行的key是不允许的。我们在使用的时候可以自己定义一个Key的格式。例如 object-type:id:field。
Key不要太长。占内存,查询慢。Key不要太短。像u:1000:pwd 就不如 user:1000:password 可读性好
2.String
String是Redis最基本的类型,Redis的String可以包含任何数据。包括jpg图片或者序列化的对象。
单个value值最大上限是1G字节。
3.List
List类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加删除元素。
这使得List既可以用作栈,也可以用作队列。
栈 先进后出 同一端进出
队列 先进先出 一端进,另外一端出
List类型经常用于抢购,通过队列形式去实现高并发下的商品发售购买流程。
4.Set
Redis的Set是String类型的无序集合。不允许有重复元素
Set元素最大可以包含(2的32次方-1)个元素。关于Set集合类型除了基本的添加删除操作,其他有用的操作还包含集合的取并集(union),交集(intersection),差集(difference)。通过这些操作可以很容易的实现聊天软件中的好友推荐功能。
5.Zset
和Set一样sorted set也是String类型元素的集合,不允许有重复元素
不同的是每个元素都会关联一个权(score)。通过权值可以有序的获取集合中的元素。
6.Hash
key=>value(feild:value),适合存储key=>value对应格式的数据。json对应关系、对象对应关系、关联数组,哈希类型也是Redis用的比较多类型之一