什么是NoSQL?
NoSQL,被称为非关系型数据库,区别于关系数据库,它们不保证关系数据的ACID特性。其优点是适用于高并发的读写操作,高响应,易扩展,高可用等特点。
为什么要用nosql
随着互联网的高速崛起,网站的用户群的增加,访问量的上升,传统数据库上都开始出现了性能瓶颈,web程序不再仅仅专注在功能上,同时也在追求性能。web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如新浪微博的某个明星的一次微博可能会有上百万次,上千万次的点赞及评论,在关系型数据库来说就是上千万条sql,根本顶不住这么频发的操作。而nosql的出现就解决的诸多问题。
4种非关系型数据库之间的对比
redis的数据类型
redis一共适用于五种数据类型,分别是string,list,set,hash,zset。以key-value的形式存储。
数据结构图
Redis的应用场景
1、高访问的数据的缓存
由于redis访问速度块、支持的数据类型比较丰富,所以redis很适合用来存储高访问数据,结合expire,我们可以设置过期时间然后再进行缓存更新操作
2、定时业务的运用
redis中可以使用expire命令设置一个键的生存时间,到时间后redis会删除它。利用这一特性可以运用在登录时长、手机验证码等业务场景。
3、计数器相关问题
redis由于可以实现原子性的递增,所以可以运用于高并发的秒杀活动
4、点赞,好友等功能
Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,所以可以应用在点赞和好友等不能重复的数据处理上。
Redis在linux服务器上的部署
进入官网找到下载地址 https://redis.io/download
下载一个redis安装包,我选的是redis-3.2.9.tar.gz
1. cd /usr/local 去usr/local 路径下
2. Mkdir azb 创建一个文件夹用来存放redis安装包
3. cd azb 去azb目录下
4. rz redis-3.2.9.tar.gz 上传redis压缩文件
5. tar zxf rz redis-3.2.9.tar.gz-C /usr/local/ 解压在usr/local 路径下
6. cd /usr/local/
7. Mv redis-3.2.9 redis 修改redis-3.2.9的名字为redis
8. Cd redis 进入redis目录下
9. Make
10. Make install
11. Mkdir etc 在redis目录下创建etc目录 存放redis.conf
12. Mkdir bin 在redis目录下创建bin目录 存放其他文件
13. mv redis.conf /usr/local/redis/etc/
14. mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /usr/local/redis/bin/
15. ./redis-server 启动redis
设置后台启动redis
首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)
cd etc/
vim redis.conf
将no修改为yes
再次启动redis服务,并指定启动服务配置文件
redis-server /usr/local/redis/etc/redis.conf