redis(NoSQL)的简单理解及部署。

  什么是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