1.redis概述
redis是一個開源的,先進的 key-value 存儲可用于構(gòu)建高性能的存儲解決方案肄方。它支持數(shù)據(jù)結(jié)構(gòu)有字符串,哈希蹬癌,列表权她,集合,帶有范圍查詢的排序集逝薪,位圖隅要,超文本和具有半徑查詢的地理空間索引。 NoSQL董济,Not Only [SQL]步清,泛指非關(guān)系型的數(shù)據(jù)庫。所以redis是一種nosql。敲黑板畫重點:redis是一種nosql.
redis的優(yōu)點:
- 異忱。快速
- 支持豐富的數(shù)據(jù)類型
- 操作都是原子的
2.下載安裝
linux 系統(tǒng)下安裝:
$ wget http://download.redis.io/releases/redis-3.2.6.tar.gz
$ tar xzf redis-3.2.6.tar.gz
$ cd redis-3.2.6
$ make
```
啟動服務(wù)器:
```
$ src/redis-server
```
啟動客戶端
```
$ src/redis-cli
```
mac下安裝:
```
brew install redis
```
啟動:
```
redis-server
redis-cli
```
windows下安裝:
由于官方并沒有提供windows 版本欢搜,不過微軟為了能夠應(yīng)用redis 到 windows服務(wù)器,由微軟維護了windows版的redis谴轮,下載地址:[點擊進入](https://github.com/MSOpenTech/redis/releases).建議下載msi 版本狂巢,直接安裝即可。
![sss](http://upload-images.jianshu.io/upload_images/2279594-ddad8a98ff77bace.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
啟動成功:
```
[35142] 01 May 14:36:28.939 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
[35142] 01 May 14:36:28.940 * Max number of open files set to 10032
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 2.6.12 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 35142
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
[35142] 01 May 14:36:28.941 # Server started, Redis version 2.6.12
[35142] 01 May 14:36:28.941 * The server is now ready to accept connections on port 6379
```
### 3.redis 支持的數(shù)據(jù)類型
#### 3.1字符串
啟動客戶端 ,存儲字符串到redis.
```
redis> SET name forezp
OK
```
取字符串:
```
redis> get name
"forezp"
```
#### 3.2Hashes - 哈希值
```
redis > HMSET king username forezp password xxdxx age 22
redis > HGETALL king
1) "username"
2) "forezp "
3) "password "
4) "xxdxx "
5) "age "
6) "22"
```
#### 3.3 Lists - 列表
```
redis> lpush pricess jack
(integer) 1
redis 127.0.0.1:6379> lpush pricess jolin
(integer) 2
redis 127.0.0.1:6379> lpush pricess mayun
(integer) 3
redis 127.0.0.1:6379> lrange pricess 0 10
1) "jack"
2) "jolin"
3) "mayun"
```
#### 3.4 Redis有序集合
Redis有序集合類似Redis集合存儲在設(shè)定值唯一性书聚。不同的是,一個有序集合的每個成員帶有分數(shù)藻雌,用于以便采取有序set命令雌续,從最小的到最大的分數(shù)有關(guān)。
```
redis > ZADD kindom 1 redis
(integer) 1
redis> ZADD kindom 2 mongodb
(integer) 1
redis > ZADD kindom 3 mysql
(integer) 1
redis > ZADD kindom 3 mysql
(integer) 0
redis > ZADD kindom 4 mysql
(integer) 0
redis > ZRANGE kindom 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
```
#### 3.5 Redis發(fā)布訂閱
開啟客戶端作為接受者
```
redis> SUBSCRIBE myking messages...
(press Ctrl-C to quit
)1) "subscribe"
2) "myking "
3) (integer) 1
```
開啟另一個客戶端作為發(fā)送者:
```
redis > PUBLISH myking "Redis is a great caching technique"
(integer) 1
```
這樣接受者就可以收到:
```
"Redis is a great caching technique"
```
#### 3.6 其他的一些操作
1.獲取所以的key
```
redis> KEYS *
```
2,判斷key是否存在
```
EXISTS key
```
3.刪除key
```
DEL key [key …]
```
4.獲取數(shù)據(jù)類型
```
TYPE key
```
5.向尾部添加
```
APPEND key value
```
6.獲取字符串長度
```
strlen key
```
當然這里只是介紹簡單的一些操作胯杭,復(fù)雜的參考官方文檔驯杜。
### 4. 在java應(yīng)用中使用redis---jedis
前提是redis 已經(jīng)安裝,并且已經(jīng)開啟服務(wù)做个。
jedis 下載地址 [https://github.com/xetorthio/jedis](https://github.com/xetorthio/jedis)
>Jedis is a blazingly small and sane [Redis](http://github.com/antirez/redis) java client.
Jedis was conceived to be EASY to use.
>翻譯: jedis是一個非常小的java客戶端鸽心,被認為是容易使用。
*怎么使用居暖?*
```
public static void main(String[] args){
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//check whether server is running or not
System.out.println("Server is running: "+jedis.ping());
jedis.lpush("forezp-list", "Redis");
jedis.lpush("forezp-list", "Mongodb");
jedis.lpush("forezp-list", "Mysql");
// Get the stored data and print it
List<String> list = jedis.lrange("forezp-list", 0 ,5);
for(int i=0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
}
```
運行:
> Connection to server sucessfully
Server is running: PONG
Stored string in redis:: Mysql
Stored string in redis:: Mongodb
Stored string in redis:: Redis
Stored string in redis:: Mysql
Stored string in redis:: Mongodb
Stored string in redis:: Redis
redis 入門介紹就到這里了顽频。另外,*敲黑板太闺,劃重點:* 遇到問題首先不要去百度搜糯景,要去官網(wǎng)搜。聰明的你省骂,是不是自己安裝下 蟀淮,實踐下。
關(guān)注我:
![image](http://upload-images.jianshu.io/upload_images/2279594-d29ff92d129d6041.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)