1. 关于NoSQL(Not Only SQL)
NoSQL是非关系型的数据库!!!随着互联网的发展,大数据的处理变得格外的重要,而对大数据的处理能力上,传统的关系型数据库如MySQL对大数据中的非关系型数据的处理很麻烦,从以下3个方面进行比较即可得知为什么需要使用NoSQL.
(1)为什么需要NoSQL?
- High performance:高并发读写.
- Huge Storage:海量数据的高效率存储和访问.
- High Scalability & High Availability:高可扩展性和高可用性.
- 灵活的数据模型,数据之间没有关联,易扩展.
- 大数据,高性能,高可用.
(2) NoSQL数据库的四大分类
- 键值(key-value)存储:其结构性不是很强,但查找速度快,如Redis 。
- 列存储:查找速度快,扩展性强,但功能比较局限,如HBase。
- 文档数据库:对结构的要求不是很高,但查询性能不高且缺少统一的查询语法,如Mongo DB。
- 图形数据库:利用图结构相关算法,但需要对整个图结构进行计算才能得出结构,不利于做分布式的集群方案。
2. Redis 概述
(1)Redis是由C语言开发的,高性能的,采用(key-value)模式来存储数据的数据库。
(2)支持的键值数据类型:字符串类型 / 列表类型 / 有序集合类型 / 散列类型 / 集合类型
(3)Redis的应用场景
- 缓存:如聊天消息缓存,数据查询缓存.
- 任务队列:如高并发秒杀系统.
- 网站访问统计
- 数据过期处理:精确度可以到ms.
- 应用排行版
- 分布式集群架构中的session分离.
3. Redis 安装
(1) Redis下载与安装(官网):https://redis.io/download
参考安装教程视频讲解:https://www.imooc.com/video/14926
/*
* 按以下步骤依次操作,每一步成功后方可进入下一步!!!
* /
...] $ wget http://download.redis.io/releases/redis-5.0.4.tar.gz //下载
...] $ tar xzf redis-5.0.4.tar.gz //解压
...] $ cd redis-5.0.4 //进入解压后的redis目录
...] $ make //在当前目录下编译redis
...] $ make PREFIX=/usr/local/redis install //在当前目录下安装redis到指定的路径中,安装后到指定的路径中可以查到安装后几个文件.
...(在redis的解压目录,非安装目录)] $ cp redis.conf /usr/local/redis/
>>> 到这一步,redis在Linux中已经安装完成
(2)启动Redis
-
前端启动redis:进入到/usr/local/redis/bin目录下,执行
./redis-server
-
后台启动redis步骤:
-
在/usr/local/redis 下打开redis.conf 配置文件,修改
daemonized no
为daemonized yes
-
在/usr/local/redis 下执行命令
./bin/redis-server ./redis.conf
,OK,启动成功 -
查看redis 启动状态:
ps -ef | grep -i redis
(3)关闭Redis服务
- 方法一是直接
kill -9 (redis服务的进程号,不推荐使用)
- 方法二是进入 /usr/local/redis 目录,执行
./bin/redis-cli shutdown
(4)向redis客户端发送数据(redis存储键值对的数据(key-value))
4. Jedis 入门
Jedis是Redis官方推荐使用的Redis客户端开发工具
- Jedis开发需要的Jar包下载地址:
(1) . http://mvnrepository.com/artifact/redis.clients/jedis
(2) . http://mvnrepository.com/artifact/org.apache.commons/commons-pool2
(1)在初次测试(@Test工具使用)Jedis时,出现连接超时的异常:redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 192.168.xxx.xxx:6379
,导致该异常的原因是Linux服务器没有打开端口 6379,解决方案:
- vim 命令打开编辑 /etc/sysconfig/iptables 文件.
- 添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
- 重启Linux(CentOS的重启命令,Ubuntu的重启命令不一样)防火墙:
service iptables restart
(2)若执行完上述方案后客户端程序还是不能连接上Redis服务,且报异常[Cause By…, Connection