一、NoSQL概述
1、什么是NoSQL?
NoSQL(Not Only SQL),是一项全新的数据库理念,泛指非关系型的数据库。
2、为什么需要NoSQL?
传统的关系型数据库应付web2.0网站,特别是超大规模和高并发的SNS类型的纯动态网站力不从心。如:
- 对数据库高并发读写的需求。网站的实时统计在线用户状态,热门帖子的点击次数,投票计数等。
- 对海量数据的高效率存储和访问的需求。腾讯,淘宝等大型网站的用户登录系统。
- 对数据库的高可扩展性和高可用性的需求。
3、主流NoSQL产品
- Redis(内容缓存,主要用于处理大量数据的高访问负载)
- mongoDB(Web应用)
- membase
- HBase
- Neo4j(社交网络)
二、Redis概述
1、什么是Redis?
Redis是用C语言开发的一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求。
2、应用场景
- 缓存(数据查询,短连接,新闻内容)
- 聊天室的在线好友列表
- 任务队列(秒杀、抢购)
- 应用排行榜
- 网站访问统计
- 数据过期处理
- 分布式集群架构中的session分离
三、redis的安装及使用
redis建议安装在linux服务器上运行测试。
1、安装
(1)redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。如果没有,则需要安装gcc:
yum install gcc-c++
2)将redis-3.0.0.tar.gz上传到Linux系统中
3)解压到/usr/local下
tar -xvf redis-3.0.0.tar.gz -C /usr/local
4)进入redis-3.0.0目录 使用make命令编译redis
5)在redis-3.0.0目录中 使用make
#安装到/usr/local/redis中
PREFIX=/usr/local/redis install
6)拷贝redis-3.0.0中的redis.conf到安装目录redis中
7)启动redis 在bin下执行命令redis-server redis.conf
8)如需远程连接redis,需配置redis端口6379在linux防火墙中开发
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
/etc/rc.d/init.d/iptables save
将redis.conf文件中的daemonize从no修改成yes表示后台启动
使用命令查看6379端口是否启动ps -ef | grep redis
9)设置为开机自启动
参考文章
10)关闭
- 强制结束程序。强行终止进程可能会导致redis持久化数据丢失。
kill -9 pid # pid 需要通过 ps aux |grep -i redis进行查询
- 正确停止方法。
cd /usr/local/redis
./bin/redis-cli shutdown
2、使用
在redis的安装目录中有redis的客户端,即redis-cli.
#redis-cli -h ip地址 -p 端口
./bin/redis-cli -h 192.168.1.88 -p 6379
默认ip和端口
./bin/redis-cli
- ping,测试客户端与Redis的连接是否正常,连接正常会收到回复PONG。
- set/get,使用set和get向redis设置数据,获取数据。
- del,删除指定key的内容。
- keys *,查看当前数据库中的所有key值。
redis.conf
redis.conf配置详解