**redis支援的資料類型:**
* 字元串(string)
* 哈希表(hash)
* 清單(list)
* 集合(set)
* 有序集合(zset)
* 位圖(bitmaps)
* HyperLoglogs、GEO等
**redis特性如下:**
* 速度快:基于記憶體工作,使用離OS最近的C語言編寫,使用單線程架構,預防了多線程可能産生的競争問題。
* 基于鍵值對的資料結構伺服器:redis中的值不僅僅可以是字元串,關于其支援的資料類型已經在文章開頭列出來了。
* 豐富的功能:
* 1.鍵過期功能,用來實作緩存。
* 2.釋出訂閱功能,用來實作消息系統。
* 3.支援Lua腳本,可以利用Lua創造出新的Redis指令。
* 4.簡單的事務功能,能在一定程度上保證事務的特性。
* 5.提供了流水線(pipeline)功能,這樣用戶端能将一批指令一次性傳到redis,較少網絡開銷。
* 簡單穩定。
* 用戶端語言多:支援java、PHP、Python、C、C++、Nodejs等。
* 資料持久化:redis工作在記憶體中,支援兩種持久化方式:RDB、AOF來寫入到硬碟中。
* 主從複制:Redis提供了複制功能,實作了多個相同資料的redis副本。
* 高可用和分布式:Redis從2.8版本正式提供了高可用實作redis Sentinel,它能夠保證Reids節點的故障發現和故障自動轉移,從3.0版本提供了分布式實作Redis
* Cluster,他是redis真正的分布式實作,提供了高可用、讀寫和容量的擴充性。
**redis的7個使用場景:**
* 緩存。
* 計數器。
* 隊列。
* 位操作(大資料處理)。
* 分布式鎖與單線程機制。
* 最新清單。
* 排行榜。
一 、 部署redis 5.0
1、下載下傳并解壓
[root@redis ~]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz
[root@redis ~]# tar zxf redis-5.0.5.tar.gz
[root@redis ~]# cd redis-5.0.5/
[root@redis redis-5.0.5]# make
2、準備工作目錄及redis所需檔案
[root@redis redis-5.0.5]# mkdir -p /usr/local/redis/{bin,conf,data} #建立目錄
[root@redis redis-5.0.5]# cp src/redis* /usr/local/redis/bin/ #拷貝指令
[root@redis redis-5.0.5]# cp redis.conf /usr/local/redis/conf/ # 拷貝配置檔案
[root@redis redis-5.0.5]# cd /usr/local/redis/bin/ #進入指令目錄下,删除不必要的檔案
[root@redis bin]# rm -rf *.c
[root@redis bin]# rm -rf *.h
[root@redis bin]# rm -rf *.o
[root@redis bin]# cd ../conf/
[root@redis conf]# cp redis.conf{,.bak} #備份配置檔案
[root@redis conf]# egrep -v '^$|^#' redis.conf.bak > redis.conf
#過濾注釋及空行以便生成新的配置檔案
3、修改配置檔案
[root@redis conf]# vim redis.conf #更改配置檔案如下
bind 0.0.0.0 #更改位監聽所有位址
port 6379
daemonize yes #啟用守護程序
pidfile /usr/local/redis/data/redis_6379.pid #指定pid檔案
logfile "/usr/local/redis/data/redis.log" #指定日志檔案
#添加指令路徑到全局指令搜尋路徑下
[root@redis bin]# echo 'export PATH=${PATH}:/usr/local/redis/bin' >> /etc/profile
[root@redis bin]# source /etc/profile
[root@redis bin]# redis-server -v #檢視redis版本
Redis server v=5.0.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=94d37e8f5f58aed5
4、啟動redis
[root@redis bin]# redis-server /usr/local/redis/conf/redis.conf #啟動redis
[root@redis bin]# ss -anpt | grep 6379 #确定端口在監聽
LISTEN 0 128 *:6379 *:* users:(("redis-server",pid=66992,fd=6))
[root@redis bin]# redis-cli #本機可直接使用redis-cli進行登入
127.0.0.1:6379>
[root@redis bin]# redis-cli -h 192.168.171.134 -p 6379 #若遠端登入,則需要指定IP及端口
192.168.171.134:6379>
5、檢視redis日志,解決warning問題
[root@redis bin]# cat /usr/local/redis/data/redis.log #檢視redis日志
會發現redis在啟動時,報有以下幾個warning:

接下來就解決這些warning問題(如果不解決這些問題,redis的性能會受到很大的影響)。
1)解決最大打開檔案數問題
[root@redis ~]# ulimit -n #檢視目前值
1024
[root@redis ~]# vim /etc/security/limits.conf #在檔案末尾寫入下面内容
* - nofile 10240
#修改後,重新登入即可生效,重新登入後再次檢視目前值
[root@redis ~]# ulimit -n
10240
2)解決TCP積壓值過小問題
[root@redis ~]# echo "net.core.somaxconn = 1024" > /etc/sysctl.d/redis.conf
[root@redis ~]# sysctl -p /etc/sysctl.d/redis.conf #重新整理使其生效
net.core.somaxconn = 1024
[root@redis ~]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.d/redis.conf
[root@redis ~]# sysctl -p /etc/sysctl.d/redis.conf #重新整理使其生效
net.core.somaxconn = 1024
vm.overcommit_memory = 1
[root@redis ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
#上述指令隻是目前生效,重新開機後就會失效,接下來改為永久生效
[root@redis ~]# echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
[root@redis ~]# chmod +x /etc/rc.d/rc.local