## 1. Redis簡介
Redis:REmote DIctionary Server(遠程字典服務器)
### 1.1 Redis是什么?
是完全開源免費的,用C語言編寫的,遵守BSD協議,
是一個高性能的(key/value)分布式內存數據庫,基于內存運行
并支持持久化的NoSQL數據庫,是當前最熱門的NoSql數據庫之一 ,也被人們稱為數據結構服務器
Redis支持數據的備份,即master-slave模式的數據備份
Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲
Redis支持數據的持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用
### 1.2 能做什么?
定時器、計數器
發布、訂閱消息系統(消息中間件)
模擬類似于HttpSession這種需要設定過期時間的功能
取最新N個數據的操作,如:可以將最新的10條評論的ID放在Redis的List里面
內存存儲和持久化:redis支持異步將內存中的數據寫到硬盤上,同時不影響繼續服務
### 1.3 官方網站
* 官網
http://redis.io/download
* 中文網:
http://www.redis.net.cn/
http://www.redis.cn/
## 2.Redis安裝
### 2.1 安裝過程
* 安裝環境 ubuntu14.04 server
```
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
tar -xzvf ./redis-3.2.5.tar.gz
cd redis-3.2.5/
~/redis-3.2.5$ sudo apt-get install gcc
~/redis-3.2.5$ sudo apt-get install make
~/redis-3.2.5$ make MALLOC=libc
```
* 將可執行文件導入/usr/local/bin 目錄
```
~/redis-3.2.5$ sudo make install
cd src && make install
make[1]: 正在進入目錄 `/home/hanxt/redis-3.2.5/src'
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]:正在離開目錄 `/home/hanxt/redis-3.2.5/src'
```
在執行了make install之后,查看默認安裝目錄:/usr/local/bin,包含如下文件:
1. redis-benchmark:性能測試工具,可以在自己本子運行,看看自己本子性能如何
服務啟動起來后執行
2. redis-check-aof:修復有問題的AOF文件
3. redis-check-dump:修復有問題的dump.rdb文件
4. redis-cli:客戶端,操作入口
5. redis-sentinel:redis集群使用
6. redis-server:Redis服務器啟動命令
* 修改redis.conf的配置
```
bind 192.168.1.152 127.0.0.1 #綁定ip,原始只有127.0.0.1
port 6379
daemonize yes #是否常駐進程運行,原始是no
dir /home/aexit1/data/redis/6379 #數據文件持久化存儲路徑,原始是./
logfile /var/log/redis/redis.log
requirepass <改為你自己的登陸密碼>
```
* linux系統下面redis常用初始化腳本
```
#!/bin/bash
REDIS_PORT=6379
REDIS_ETC=/etc/redis
REDIS_INITD=/etc/init.d
sudo mkdir $REDIS_ETC
sudo mkdir -p ~/data/redis/$REDIS_PORT
sudo mkdir -p /var/log/redis
sudo cp ./redis-3.2.5/utils/redis_init_script ${REDIS_INITD}/redis_${REDIS_PORT}
sudo cp ./redis-3.2.5/redis.conf ${REDIS_ETC}/${REDIS_PORT}.conf
```
* 執行啟動命令,守護進程
```
sudo /etc/init.d/redis_6379 start (還可以stop)
#redis-server ./redis.conf (這種啟動方式,不是生產規范)
```
* 測試一下基礎命令:
```
redis-cli -h 192.168.1.152 -p 6379
redis> set foo bar
OK
redis> get foo
"bar"
```
### 2.2.安裝之后需要知道的基礎知識
* redis是單進程工作,利用IO多路復用技術
* 默認16個數據庫,類似數組下表從零開始,初始默認使用零號庫,使用select命令切換數據庫,如select 2
* Redis索引都是從零開始
* redis初始沒有密碼,可以使用統一密碼管理,16個庫都是同樣密碼,要么都OK要么一個也連接不上
* 默認端口是6379
## 4.Redis常用命令
> 更多命令請參考 http://redisdoc.com/
## 5.操作系統內核參數優化
### Redis的啟動過程日志
> 可以看到啟動過程中,有許多的警告
```
22034:M 28 Nov 11:21:07.123 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 22034
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
22034:M 28 Nov 11:21:07.124 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
22034:M 28 Nov 11:21:07.125 # Server started, Redis version 3.2.5
22034:M 28 Nov 11:21:07.125 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
22034:M 28 Nov 11:21:07.125 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
22034:M 28 Nov 11:21:07.125 * DB loaded from disk: 0.000 seconds
22034:M 28 Nov 11:21:07.125 * The server is now ready to accept connections on port 6379
```
- 版權
- 博客主題
- 如何不去做運行3.5G-docker鏡像的工程師
- 預備主題
- FastDFS快速入門
- mysql定時創建月表
- SpringMVC-Restful
- Docker生態系統
- The Docker Ecosystem: An Introduction to Common Components
- docker監控指標
- 基于etcd服務發現的overlay跨多宿主機容器網絡
- etcd:從應用場景到實現原理的全方位解讀
- docker存儲驅動詳解
- 使用docker/engine-api操作docker
- 提升Docker安全性
- docker安全之用戶資源隔離
- marathon
- 開始
- 安裝mararhon
- 高可用模式
- 使用marathon
- 應用的部署
- 架構組件
- Dubbo與Zookeeper、SpringMVC整合和使用(負載均衡、容錯)
- Openstack架構解析
- haproxy
- Ubuntu系統安裝截圖
- mesos官方文檔
- 關于譯者
- mesos基礎
- Mesos架構
- 視頻與ppt
- 讓mesos跑起來
- 快速入門
- 配置
- Containerizer
- Docker Containerizer
- 監控
- 博客文章集
- 煮餃子與mesos之間妙不可言的關系
- linux運維
- 基礎篇
- 進階篇
- mysql
- Ubuntu14.04安裝mysql5.6
- MySQL 5.6 replicate原理與實踐
- mysql性能
- redis
- redis安裝及基礎知識
- redis數據結構
- redis命令
- redis數據持久化
- Redis主從復制
- redis集群
- 其他