NoSQL概述
什么是NoSQL:
Not Only SQL,非关系型的数据库
为什么要NoSQL:
高并发读写、海量数据的高效率存储和访问、高可扩展性和高可用性
NoSQL主流产品:
Redis、MongoDB
NoSQL数据库的四大分类:
- 键值存储:Redis
- 列存储
- 文档数据库:MongoDB
- 图形数据库
特点:
- 易扩展
- 灵活的数据模型
- 大数据量,高性能
- 高可用
Redis
高性能键值对数据库,支持的键值数据类型:
- 字符串类型 (String)
- 列表类型(List)
- 有序集合类型(sorted sets)
- 散列类型(Hash)
- 集合类型(Sets)
应用场景:
- 缓存
- 任务队列
- 网站统计访问
- 数据过期处理
- 分布式集群架构中的session分离
压缩包下载地址:
https://github.com/MSOpenTech/redis/releases
选择下载Redis-64…zip,解压到任意盘并重命名文件夹为redis
使用:
- 进入redis文件夹,cmd进入cmd窗口,输入:redis-server.exe redis.windows.conf,进入页面后不要关闭
- 换另一个cmd窗口,进入redis目录,输入:redis-cli.exe -h 127.0.0.1 -p 6379
Redis配置:
https://www.runoob.com/redis/redis-conf.html
数据类型:
- String:可以包含任何数据,是二进制安全的。一个键最大能存512MB
SET a "hello" //存了一个类型为String,变量名为a,值为"hello"的变量
GET a //取a的值
- Hash:String类型的键和值的映射表。适合用于存储对象,能存40多亿个键值对
HMSET hash filed1 "hello" filed2 "world" //存了两个键值对
HGET hash filed1 //取filed1的值
HGET hash filed2 //取filed2的值
- List:字符串列表。按照插入顺序排序你可以添加一个元素到列表的头部(左边)或者尾部(右边)
//向变量list增加三个值,分别是value1、value2、value3
lpush list value1
lpush list value2
lpush list value3
//按加入顺序获得值
lrange list 0 10
- Set:String类型的无序集合。添加一个String元素到Set中,成功返回1,若已存在返回0
//存值
sadd set hello
sadd set world
//取值
smembers set
- zset:有序集合。与Set一样,但是不允许重复的成员。每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
//存值
zadd zset 0 hello
zadd zset 0 world
zadd zset 1 wjc
zadd zset 1 come
//取值
ZRANGEBYSCORE zset 0 1000