[TOC]
# Redis简介安装部署
## 01/ nosql介绍
> NoSQL:一类新出现的数据库(not only 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. 两者在不断地取长补短,呈现融合趋势
## 02/ redis介绍
### 2.1 简述
> Redis是一个高性能的kv对缓存和内存数据库(存的不像mysql那样的表)
> Redis的存储结构就是key-value,形式如下:
![](https://box.kancloud.cn/a09d1b3722d28858274664d38e171bbf_357x217.png)
> 注: redis中的value内部可以支持各种数据结构类型,比如可以存入一个普通的string,还可以存list,set,hashmap,sortedSet(有序的set)
### 2.2 redis应用场景
* 用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
* 可以在某些特定应用场景下替代传统数据库——比如社交类的应用
* 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
> 只要你有丰富的想象力,redis可以用在可以给你无限的惊喜…….
### 2.3 redis的特性
1. redis数据访问速度快(数据在内存中)
2. redis有数据持久化机制(持久化机制有两种:1、定期将内存数据dump到磁盘;2、aof(append only file)持久化机制——用记日志的方式记录每一条数据更新操作,一旦出现灾难事件,可以通过日志重放来恢复整个数据库)
3. redis支持集群模式(容量可以线性扩展)
4. redis相比其他缓存工具(ehcach/memcached),有一个鲜明的优势:支持丰富的数据结构
## 03/ 安装redis
### 3.1 获取源码包
1. 先去官网(http://redis.io/download )下载一个源码工程(redis官网版本只支持linux/微软开源事业部维护了一个windows版本)
2. 把安装包上传到服务器,解压缩
### 3.2 编译源码
> 1、切换到解压出来的源码工程目录中
~~~
cd redis-2.6.16
~~~
> 2、用make命令来对redis的c语言源码工程进行编译
> 3、编译完成之后,用make install命令进行安装
~~~
[root@notrue-centos redis-2.6.16]# make PREFIX=/usr/local/redis install
~~~
安装成功的显示:
![](https://box.kancloud.cn/a82225b7465b301290766bcdab156a35_461x171.png)
### 3.3 启动redis服务
> 1、进入redis的bin目录
![](https://box.kancloud.cn/c1014de080f5a80b71d082a26a6defc1_456x92.png)
> 2、准备配置文件
> Redis服务在启动的时候可以指定配置文件,那,我们可以从redis的源码目录中拷贝一份配置文件模板到redis的安装目录,修改后使用
~~~
[root@notrue-centos redis-2.6.16]# cp /root/redis-2.6.16/redis.conf /usr/local/redis/
~~~
> 3、启动redis服务
> 并指定使用的配置文件
![](https://box.kancloud.cn/5e1937acb11fd32df76e06769b503e7b_410x89.png)
> 4、启动成功的显示
![](https://box.kancloud.cn/b5f6291770b0bba314c0cfee79aa8f30_320x145.png)
> 5、启动为后台服务
> 上述启动方法,会让redis服务进程运行在console前台,最好应该放到后台运行,可将启动命令改为如下方式:
> 1/ 方式一
~~~
[root@notrue-centos redis]# nohup bin/redis-server ./redis.conf 1>/dev/null 2>&1 &
~~~
> Nohup:控制台关闭或闲置超时,也不退出
> 1>/dev/null : 把程序的“1”——标准输出,重定向到文件/dev/null
> 2>&1 : 把程序的“2”——错误输出,重定向到“1”所去的文件
> & : 把程序放到后台运行
> 2/ 方式二
> 修改配置文件,
~~~
vi redis.conf
~~~
> 修改其中一个配置
![](https://box.kancloud.cn/18f8fc707a63573d2737a0e837981246_232x85.png)
> 保存文件后再用普通命令启动,也可以启动为后台模式
~~~
[root@notrue-centos redis]# bin/redis-server ./redis.conf
~~~
## 04/ 客户端连接
### 1、 用redis自带的命令行客户端
~~~
[root@notrue-centos redis]# bin/redis-cli -h notrue-centos -p 6379
redis notrue-centos:6379> ping
PONG
redis notrue-centos:6379>
~~~
### 2、 或者用redis的api客户端连接
> 新建一个maven工程,导入jedis的maven依赖坐标
~~~
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
~~~
> 然后写一个类用来测试服务器跟客户端的连通性:
~~~
public class RedisClientConnectionTest {
public static void main(String[] args) {
// 构造一个redis的客户端对象
Jedis jedis = new Jedis("pinshutang.zicp.net", 6379);
String ping = jedis.ping();
System.out.println(ping);
}
}
~~~
- hadoop
- linux基础
- Linux入门
- Linux进阶
- shell
- Zookeeper
- Zookeeper简介及部署
- Zookeeper使用及API
- Redis
- Redis简介安装部署
- Redis使用及API
- Java高级增强
- Java多线程增强
- Maven简介及搭建
- Hive
- Hive简介及安装
- Hive操作
- HIve常用函数
- Hive数据类型
- Flume
- Flume简介及安装
- flume 拦截器(interceptor)
- azkaban
- azKaban简介及安装
- Sqoop
- Sqoop简介及安装
- HDFS
- HDFS原理
- HDFS操作API
- MAPREDUCE原理
- MAPREDUCE图片资源
- MAPREDUCE加强
- HBASE
- HBASE简介及安装
- HBASE操作及API
- HBASE内部原理
- Storm
- Storm简介及安装
- Storm原理
- kafka
- kafka简介及安装
- kafka常用操作及API
- kafka原理
- kafka配置详解
- Scala
- Scala简介及安装
- Scala基础语法
- Scala实战