一 定义:
一种非关系型数据库,跟SQL这种关系型数据库相对应。SQL的各种表之间存在着一对多,多对多,多对一的关系,redis则没有,因此叫NOSQL型数据库。
二 设计思想和优点
它的设计思想是计算机科学中随处可见的利用空间换时间的缓存思想。我理解的跟cache,页表,TLB的本质一模一样,
从它的设计思想可以看出,优点是它的速度非常快,缺点是存储大小受限
三 查询策略
首先访问redis,没有数据则访问数据库,得到数据后返回并写入redis,总而言之其优先级比数据库高。从其策略可以看出,它适合存储长时间不发生变化的数据。
四 性质——应用
1 存取快,高性能
缓存——热数据(经常访问的数据)
位操作(eg 腾讯检查用户是否存在,可以用0,1表示用户id)
最新列表
排行榜
2 单线程,安全
分布式锁与单线程机制(秒杀系统)
计数器
高性能是最大的特点,几乎所有应用都用到了这个特性。
五 数据结构和常见命令
类似于map<key,value> 的存储结构,key只可以是string类型,
*** value的数据结构:
1) 字符串类型 string
2) 哈希类型 hash : map格式
3) 列表类型 list : linkedlist格式。支持重复元素
4) 集合类型 set : 不允许重复元素
5) 有序集合类型 sortedset:不允许重复元素,且元素有顺序**
2. 字符串类型 string
1. 存储: set key value
2. 获取: get key
3. 删除: del key
3. 哈希类型 hash
1. 存储: hset key field value
2. 获取:
* hget key field: 获取指定的field对应的值
3. 删除: hdel key field
4. 列表类型 list:可以添加一个元素到列表的头部(左边)或者尾部(右边)
1. 添加:
1. lpush key value: 将元素加入列表左表
2. rpush key value:将元素加入列表右边
2. 获取:
* lrange key start end :范围获取
3. 删除:
* lpop key: 删除列表最左边的元素,并将元素返回
* rpop key: 删除列表最右边的元素,并将元素返回
5. 集合类型 set : 不允许重复元素
1. 存储:sadd key value
2. 获取:smembers key:获取set集合中所有元素
3. 删除:srem key value:删除set集合中的某个元素
6. 有序集合类型 sortedset:不允许重复元素,且元素有顺序.每个元素都会关联一个 double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
1. 存储:zadd key score value
2. 获取:zrange key start end [withscores]
3. 删除:zrem key value(%E9%93%BE%E6%8E%A5%EF%BC%9Ahttps://pan.baidu.com/s/1o2Ok3cNK1kUGcltLkCsAqg%20%20%E6%8F%90%E5%8F%96%E7%A0%81%EF%BC%9Axqbd%20%20--%E6%9D%A5%E8%87%AA%E7%99%BE%E5%BA%A6%E7%BD%91%E7%9B%98%E8%B6%85%E7%BA%A7%E4%BC%9A%E5%91%98V3%E7%9A%84%E5%88%86%E4%BA%AB)
六 下载地址
链接:百度网盘
(https://pan.baidu.com/s/1o2Ok3cNK1kUGcltLkCsAqg)
提取码:xqbd