1. Redis簡介
介紹Redis之前,先了解下NoSQL (Not noly SQL)不僅僅是SQL
屬于非關(guān)系型數(shù)據(jù)庫鬓梅;
Redis就屬于非關(guān)系型數(shù)據(jù)庫
傳統(tǒng)的Mysql ,oracle ,sql server 等 都是關(guān)系型數(shù)據(jù)庫
為什么需要NoSQL供置,主要應(yīng)對以下問題,傳統(tǒng)關(guān)系型數(shù)據(jù)庫力不從心
- High performance -高并發(fā)讀寫
- Huge Storage-海量數(shù)據(jù)的高效率存儲和訪問
- High Scalablility && High Availability 高可擴展性和高可用性
- NoSQL 產(chǎn)品 MongoDB Redis等等 Redis目前主流
NoSQL的特點
- 易擴展
- 靈活的數(shù)據(jù)模型
- 大數(shù)據(jù)量绽快,高性能
- 高可用
高性能鍵值對數(shù)據(jù)庫芥丧,支持的鍵值數(shù)據(jù)類型
- 字符串類型
- 列表類型
- 有序集合類型
- 散列類型
- 集合類型
應(yīng)用場景
- 緩存
- 任務(wù)隊列
- 網(wǎng)站訪問統(tǒng)計
- 數(shù)據(jù)過期處理
- 應(yīng)用排行榜
- 分布式集群架構(gòu)中的session分離
2. wget方式 下載redis壓縮包紧阔,并解壓,以及編譯
下載:
解壓:
tar -zxvf redis-4.0.8.tar.gz
編譯:
cd redis-4.0.8
make
3. 安裝redis
安裝:
cd src
make install PREFIX=/usr/local/redis
移動配置文件到安裝目錄下 :
cd ../
mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc
配置redis為后臺啟動 :
vi /usr/local/redis/etc/redis.conf
將daemonize no 改成daemonize yes
將redis加入到開機啟動 :
vi /etc/rc.local
//在里面添加內(nèi)容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
4. 啟動與停止redis:
啟動:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
通過ps -ef | grep -i redis命令來搜索redis服務(wù) :
[root@luyuhui bin]# ps -ef | grep -i redis
root 589 1 0 09:49 ? 00:00:00 ./redis-server 127.0.0.1:6379
root 599 29679 0 09:50 pts/0 00:00:00 grep --color=auto -i redis
通過shutdown命令來停止redis服務(wù)的運行 :
[root@luyuhui redis]#/usr/local/redis/bin/redis-cli shutdown
[root@luyuhui redis]# ps -ef | grep -i redis
root 628 29679 0 10:03 pts/0 00:00:00 grep --color=auto -i redis
[root@luyuhui redis]#
常用命令:
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf //啟動redis
pkill redis //停止redis
/usr/local/redis/bin/redis-cli shutdown //停止
卸載redis:rm -rf /usr/local/redis //刪除安裝目錄
rm -rf /usr/bin/redis-* //刪除所有redis相關(guān)命令腳本
rm -rf /root/redis-4.0.8 //刪除redis解壓文件夾
5. redis基本使用
key:value格式
[root@luyuhui redis]# ./bin/redis-cli
127.0.0.1:6379> set name luyuhui
OK
127.0.0.1:6379> get name
"luyuhui"
127.0.0.1:6379> keys *
- "name"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
通過set設(shè)置续担,通過get獲取
通過del刪除key,
keys * 顯示所有keys
6. 客戶機測試redis連通性及解決方案:
- 端口問題
? 解決方案:
? 修改下 redis配置文件 redis.conf
? 將bind 127.0.0.1 注釋掉
- redis自我保護(hù) 拒絕訪問
? 解決方案:
? 方案1(關(guān)閉redis的自我保護(hù)--不推薦):
? 修改下 redis配置文件 redis.conf
? 將protected-mode yes 改為no
? 方案2(設(shè)置密碼):
[root@luyuhui ~]# cd /usr/local/redis/bin/
[root@luyuhui bin]# ./redis-cli
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> quit
[root@luyuhui bin]# ./redis-cli
127.0.0.1:6379> set name luyuhui
(error) NOAUTH Authentication required.
127.0.0.1:6379> auto 123456
(error) ERR unknown command 'auto'
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set name luyuhui
OK
7. Jedis測試redis連通性
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
import redis.clients.jedis.Jedis;
public class JedisTest {
public static void main(String[] args) {
Jedis jedis=new Jedis("xxx.xx.xxx.xxx",6379); // 創(chuàng)建客戶端 設(shè)置IP和端口
jedis.auth("123456"); // 設(shè)置密碼
jedis.set("name", "luyuhui"); // 設(shè)置值
String value=jedis.get("name"); // 獲取值
System.out.println(value);
jedis.close(); // 釋放連接資源
}
}