[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,形式如下:

> 注: 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
~~~
安裝成功的顯示:

### 3.3 啟動redis服務
> 1、進入redis的bin目錄

> 2、準備配置文件
> Redis服務在啟動的時候可以指定配置文件,那,我們可以從redis的源碼目錄中拷貝一份配置文件模板到redis的安裝目錄,修改后使用
~~~
[root@notrue-centos redis-2.6.16]# cp /root/redis-2.6.16/redis.conf /usr/local/redis/
~~~
> 3、啟動redis服務
> 并指定使用的配置文件

> 4、啟動成功的顯示

> 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
~~~
> 修改其中一個配置

> 保存文件后再用普通命令啟動,也可以啟動為后臺模式
~~~
[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實戰