redis基本使用

redis 基礎知識

基本特點

Redis 與其他 key - value 緩存產品有以下三個特點:

Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用。
Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
Redis支持數據的備份,即master-slave模式的數據備份。

基本數據類型

string

基本操作 :
set :設值
get :獲取值

127.0.0.1:6379> set name jr
OK
127.0.0.1:6379> get name
"jr"
127.0.0.1:6379>

list

基本操作 :
lpush:設值
lrange: 獲取值

127.0.0.1:6379> lpush ages 1
(integer) 1
127.0.0.1:6379> lpush ages 2
(integer) 2
127.0.0.1:6379> lpush ages 3
(integer) 3
127.0.0.1:6379> lrange ages 0 2
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> 

顯示順序插入的倒敘

hash

基本操作 :
hmset:設值
hget: 獲取值

127.0.0.1:6379> hmset runnoob name "jt" age 23 sex "name"
OK
127.0.0.1:6379> hget runnoob name
"jt"
127.0.0.1:6379>

set

基本操作 :
sadd :設值
smembers : 獲取值

127.0.0.1:6379> sadd keys car
(integer) 1
127.0.0.1:6379> sadd keys  bus
(integer) 1
127.0.0.1:6379> sadd keys  airplay
(integer) 1
127.0.0.1:6379> smembers keys
1) "bus"
2) "airplay"
3) "car"
127.0.0.1:6379>

這個時無序的

zset

基本操作 :
zadd :設值
zrange : 獲取值

127.0.0.1:6379> zadd maker  2 import
(integer) 1
127.0.0.1:6379> zadd maker  1 other
(integer) 1
127.0.0.1:6379> zadd maker  3 nog
(integer) 1
127.0.0.1:6379> zrange maker 02
(error) ERR wrong number of arguments for 'zrange' command
127.0.0.1:6379> zrange maker 0 2
1) "other"
2) "import"
3) "nog"
127.0.0.1:6379>

科看到顯示的順序時按照 規定的順序來的

服務實例的創建

在實際中我們通常時創建一個實例,但有時存在創建多個的情況,下面說以下創建多個的情況,一個的就更容易了。

複製多個配置文件

在這裏插入圖片描述

修改每個配置文件中的內容

(1)修改端口

(2)修改dump文件

在這裏插入圖片描述
在這裏插入圖片描述
如果要添加密碼,和規定日誌文件,也可修改以下參數

在這裏插入圖片描述
在這裏插入圖片描述

啓動多個實例

在這裏插入圖片描述
在cmd 中運行相應的配置文件,可啓動多個實例

分片數據的存儲

public static void testShard(){
//定義redis的配置
PoolConfig poolconfig = new PoolConfig();
poolconfig.setMaxTotal(1000); //表示redis的最大連接數——最大1000個線程
poolconfig.setMinIdle(5); //表示最小空閒數量
//定義redis的多個節點機器
List list = new ArrayList<>();
//爲集合添加參數
list.add(new JedisShardInfo(“localhost”, 6379));
list.add(new JedisShardInfo(“localhost”, 6380));
list.add(new JedisShardInfo(“localhost”, 6381));
//定義redis分片連接池
ShardedJedisPool jedisPool = new ShardedJedisPool(poolconfig, list);
//獲取連接操作redis
ShardedJedis shardedJedis = jedisPool.getResource();
//向redis中添加20個記錄查看分片結果
for(int i = 0; i < 30; i++){
//增加的記錄格式爲 key=NUM_i value=i
shardedJedis.set(“NUM_”+i, “”+i);
}
}

以上是在java 代碼中實現的分片數據存儲

分區的不足

分區是多臺redis共同作用的,如果其中一臺出現了宕機現象,則整個分片都將不能使用,雖然是在一定程度上緩減了內存的壓力,但是沒有實現高可用。
涉及多個key的操作通常是不被支持的。舉例來說,當兩個set映射到不同的redis實例上時,你就不能對這兩個set執行交集操作。
涉及多個key的redis事務不能使用。
當使用分區時,數據處理較爲複雜,比如你需要處理多個rdb/aof文件,並且從多個實例和主機備份持久化文件。
高可用的解決方案:可以採用哨兵機制實現主從複製從而實現高可用。

redis性能查看與監控常用工具

1.redis-benchmark

redis基準信息,redis服務器性能檢測
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
100個併發連接,100000個請求,檢測host爲localhost 端口爲6379的redis服務器性能

使用場景

目前公司的redis 主要用於會話共享 以及數據緩存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章