前言-NoSQL 的简单介绍
NoSQL:一类新出现的数据库(Not Only SQL | No SQL),它的特点:
1、不支持 SQL 语法
2、存储结构跟传统关系型数据库中的那种关系表完全不同,NoSQL 中存储的数据都是 KV
形式
3、NoSQL 的世界中没有一种通用的语言,每种 NoSQL 数据库都有自己的 API 和语法,以及
擅长的业务场景
4、NoSQL 中的产品种类相当多:
A、Mongodb,文档型 NoSQL 数据库,擅长做 CMS 系统(内容管理系统)
B、Redis,内存数据库,数据结构服务器,号称瑞士军刀(精巧),只要你有足够的想
象力,它可以还给你无限惊喜
C、HBase,hadoop 生态系统中原生的一种 NoSQL 数据库,重量级的分布式 NoSQL 数据
库,用于海量数据的场景
D、Cassandra,hadoop 生态系统中原生的一种分布式 NoSQL 数据库,后起之秀
NoSQL 和 SQL 数据库的比较:
1、适用场景不同:SQL 数据库适合用于关系特别复杂的数据查询场景,NoSQL 反之
2、“事务”特性的支持:SQL 对事务的支持非常完善,而 NoSQL 基本不支持事务
3、两者在不断地取长补短,呈现融合趋势
1. Redis 概念
REmote DIctionary Server(Redis)是一个由 Salvatore Sanfilippo 写的开源的、高性能的、使用
ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、key-value
存储系统,并提供多种语言的 API。和 memcached 类似,Redis 常被称作是一款 key-value 内
存存储系统或者内存数据库,同时由于它支持丰富的数据结构,又被称为一种数据结构服务
器(Data Structure Server)。因为值(value)可以是字符串(String),哈希(Map),列表(list),
集合(sets)和有序集合(sorted sets)等类型。
Redis 与其他 key-value 缓存产品有以下三个特点:
1、Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载
进行使用。
2、Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据
结构的存储。
3、Redis 支持数据的备份,即 master-slave 模式的数据备份。
2. Redis 优势
1、性能极高:Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s 。
2、丰富的数据类型:Redis 支持二进制案例的 String, List, Hash, Set 及 Sorted Set 数据类型操
作。
3、原子操作:Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操作全并后的原子
性执行。
4、丰富的特性:Redis 还支持 Publish/Subscribe,通知 key 过期,支持高可用集群等等特性。
5、数据持久化机制
持久化机制有两种:
1、RDB 方式:定期将内存数据 dump 到磁盘
2、AOF(append only file)持久化机制:用记日志的方式记录每一条数据更新操作,一旦
出现灾难事件,可以通过日志重放来恢复整个数据库
3.Redis 适用场景
1、TopN 需求:取最新的 n 个数据,如读取作家博客最新的 50 篇文章,通过 List 实现按时
间排序的数据的高效获取
2、排行榜应用:以特定条件为排序标准,将其设成 sorted set 的 score,进而实现高效获取
3、需要精准设定过期时间的应用:把 sorted set 的 score 值设置成过期时间的时间戳,那么
就可以简单地通过过期时间排序,定时清除过期数据了
4、计数器应用:Redis 的命令都是原子性的,可以轻松地利用 INCR,DECR 命令来构建计数
器系统。
5、去除大量数据中的重复数据:将数据放入 set 中,就能实现对重复数据的排除
6、构建队列系统:使用 list 可以构建队列系统,使用 sorted set 甚至可以构建有优先级的队
列系统。
7、实时系统,反垃圾系统:通过上面说到的 set 功能,你可以知道一个终端用户是否进行
了某个操作,可以找到其操作的集合并进行分析统计对比等。
8、Publish/SubScribe 构建实时消息系统
9、缓存(会话,商品列表,评论列表,经常查询的数据等)
Redis-3.2.6 安装
1、找官网(https://redis.io/)下载对应版本的 Redis(redis-3.2.6.tar.gz)安装包
2、解压到对应的安装目录
[hadoop@hadoop02 ~]$ tar -zxvf redis-3.2.6.tar.gz -C /home/hadoop/apps/
3、进入到 Redis 根目录下去,执行测试命令
[hadoop@hadoop02 ~]$ cd apps/redis-3.2.6/
[hadoop@hadoop02 redis-3.2.6]$ make test
(1)若出现如下提示,则说明未安装gcc,使用命令安装gcc:yum install gcc
[root@localhost redis-2.8.17]# make
cd src && make all
make[1]: Entering directory `/root/redis-2.8.17/src‘
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/root/redis-2.8.17/src‘
make: *** [all] Error 2
(2)若出现如下提示,则将make改为make MALLOC=libc,推测是因为编译库的问题。
[root@localhost redis-2.8.17]# make
cd src && make all
make[1]: Entering directory `/root/redis-2.8.17/src‘
CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-2.8.17/src‘
make: *** [all] Error 2
(3)如果出现以下提示,则需要安装tcl,运行命令:yum install tcl
You need tcl 8.5 or newer in order to run the Redis test
Makefile:225: recipe for target ‘test’ failed
make: * [test] Error 1
如果测试全部通过,也就是出现如下结果信息,证明上一步 make 操作准确无误

4.执行命令安装,PREFIX 表示安装到指定的目录
[hadoop@hadoop02 redis-3.2.6]$ make PREFIX=/home/hadoop/apps/redis install
出现如下信息,表示安装成功
5.在 redis 的根目录下有一个配置文件 redis.conf,把它拷贝到你安装的 redis 目录,也就是前面指定的哪个 PREFIX 文件夹:
[hadoop@hadoop02 redis-3.2.6]$ cp redis.conf ~/apps/redis
6.配置环境变量
export REDIS_HOME=/home/hadoop/apps/redis/
export PATH=$PATH:$REDIS_HOME/bin
7.启动 Redis 服务
配置环境变量和拷贝了 redis.conf 的配置文件,那么请执行:
[hadoop@hadoop02 ~]$ redis-server
如果没有配置环境变量也没有拷贝 redis.conf 配置文件的,请执行:
[hadoop@hadoop02 bin]$ ~/apps/redis/bin/redis-server ~/apps/redis/redis.conf
启动成功了,出现如下画面
注意,最好启动到后台运行,那么执行命令:
[hadoop@hadoop02 ~]$ nohup ~/apps/redis/bin/redis-server ~/apps/redis/redis.conf
1>~/apps/redis/redis_std.log 2>~/apps/redis/redis_error.log &

8.启动客户端,执行命令:
[hadoop@hadoop02 ~]$ redis-cli
如果是从其他节点上链接 redis,那么可以这么做:
[hadoop@hadoop02 ~]$ redis-cli -h hadoopxx -p 6379
9.进入客户端了以后,执行命令检测 redis 是否正常工作
127.0.0.1:6379> ping
出现 PONG 证明 redis 已经正常工作了,安装成功
10.使用 Redis 的 Java API 客户端–Jedis

第二种安装方式:
一、安装
(1)tar -zxvf redis-3.0.7.tar.gz
(2)cd redis-3.0.7
make
(3)cd src
make install
生成redis-server和redis-cli
(4)然后创建两个文件夹etc和bin
mkdir -p /home/hadoop/redis/etc
mkdir -p /home/hadoop/redis/bin
(5)移动redis-3.0.7下的redis.conf到etc下
cp /home/hadoop/redis-3.0.7/redis.conf /home/hadoop/redis/etc/
(6)把 redis-3.0.7/src 里的 mkreleasehdr.sh、redis-benchmark、redis-check-aof、
redis-check-dump、redis-cli、redis-server 文件移动到 bin 下
mv /home/hadoop/redis-3.0.7/src/mkreleasehdr.sh /home/hadoop/redis-3.0.7/src/redis-benchmark /home/hadoop/redis-3.0.7/src/redis-check-aof /home/hadoop/redis-3.0.7/src/redis-check-dump /home/hadoop/redis-3.0.7/src/redis-cli /home/hadoop/redis-3.0.7/src/redis-server /home/hadoop/redis/bin/
(7)修改配置文件:
进入到redis/etc:
vi redis.conf
daemonize 改为 yes
(8)启动:
进入到redis:
bin/redis-server etc/redis.conf
(9)验证是否成功:
ps -ef | grep redis
(10)进入redis客户端:
bin/redis-cli
至此redis安装成功
Redis入门指南:安装与使用
本文介绍了NoSQL数据库的基本概念和Redis的特点,包括Redis作为内存数据库和数据结构服务器的优势,如高性能、丰富的数据类型和持久化机制。详细阐述了Redis的安装过程,包括两种安装方式,并提及Redis在TopN需求、排行榜、计数器应用等场景中的应用。
1003

被折叠的 条评论
为什么被折叠?



