本文共 1275 字,大约阅读时间需要 4 分钟。
什么是NoSql
不仅仅是SQL,泛指非关系型的数据库
NoSql特点
NoSQL的共同特点是数据之间无关系
优点 易扩展,高读写性能
传统RDBMS与NOSQL对比
RDBMS
结构化查询语言(SQL)
数据和关系都存储在单独的表中
事务
NoSQL
没有声明性查询语言,没有预定义的模式
键 - 值对存储,列存储,文档存储,图形数据库
最终一致性,而非ACID属性
Redis基本概念
Redis简介
redis是一个高性能的k-v非关系数据库,它可存键与5种不同类型的值之间的映射(mapping),支持存储的value类型包括String(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(散列表)。为了效率,数据缓存在内存中。redis会周期性的把更新的数据写入磁盘,并且实现了master-slave(主从)同步
Redis特点
redis操作都是原子性的,来保证数据的完整性
redis将数据存储到内存中,读写效率非常高:读 11万/s 写 8万/s
redis中提供了丰富的数据类型:五种 String hash list set sortedSet
注: redis中数据类型指的是value的数据类型,而key只有String
Redis数据类型之String
概述
字符串类型是Redis中最基础的数据存储类型,它在Redis中是二进制安全的,该类型可以接受任何格式的数据。在Redis中字符串类型的Value最多可以容纳的数据长度是512M
使用场景
缓存:将数据以字符串方式存储
计数器功能:如视频播放次数,点赞次数
Redis数据类型之List
概述
List类型是按照插入顺序排序的字符串链表。从元素插入和删除的效率视角来看,如果我们是在链表的两头插入或删除元素,是非常高效的操作,即使链表中已经存储了百万条记录,该操作也可以在常量时间内完成。如果元素插入或删除操作是作用于链表中间,那是非常低效的
使用场景
消息队列:使用redis做消息队列,如果消费失败客户端把key再放回去,消费成功真的remove掉
Redis数据类型之Hash
概述
Hash类型是具有String Key和String Value的map容器,该类型非常适合于存储值对象的信息。如Username、Password等
使用场景
用Hash做表数据缓存
Redis数据类型之Set
概述
Set类型是没有排序的字符集合,和List类型一样,在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作,
和List类型不同的是,Set集合中不允许出现重复的元素使用场景
标签,去重,抽奖案例
Redis数据类型之Sorted Set
概述
Sorted Set(有序集合)不允许重复的成员,Sorted Set中的成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。尽管Sorted Set中的成员(元素值)必须唯一,但分数(score)却可以重复
使用场景
排行榜
转载地址:http://gpazi.baihongyu.com/