Redis的使用
1.Redis的概念
-
Redis執行過程,也就是讀寫過程都是基於記憶體實現的key/value儲存,對比與memcached而言,會基於非同步方式(快照)同步到檔案系統,實現資料 的永續性儲存,單一程式響應使用者的所有的請求,具有主從架構 ;
-
Redis支援儲存的value型別有很多,包括string(字串)、list(連結串列)、set(集合)、zset(有序集合)和hash(雜湊型別);
2.Windows系統下安裝Redis
安裝地址 : https://github.com/MicrosoftArchive/redis/releases
- redis連線
r = redis.Redis(host='127.0.0.1', port=6379)host是redis主機,需要redis服務端和客戶端都啟動 redis預設埠是6379;
3.Linux系統下安裝Redis:
安裝命令列
yum install -y redis
啟動Redis
systemctl start redis.service
連線方式一
redis-cli -h 192.168.23.10 -p 6379
連線方式二
redis-cli -h 192.168.23.10 -p 6379 -a 123456
選擇資料庫:由於在配置檔案中預設定義使用16個database,因此每次登入Redis時,可以選擇使用哪個資料庫
select 0:表示使用0號資料庫
select 1:表示使用1號資料庫
清空資料庫
flushdb :清空當前資料庫
flushall :清空所有的庫
4.Redis中的命令和命令組
- 命令組與命令的聯絡:一個命令組中包含多個命令,可以使用 help @命令組,檢視某個命令組中有多少命令,以及這些命令如何使用,如
help @string
help @server
- 檢視特定命令的用法
help LLEN
help STRLEN;
5.Redis常用命令
set key value [EX seconds] [PX milliseconds] [NX|XX]
-
set robby ops
:賦值; 、 -
get robby
:取值; -
EX
:表示超時時長; -
NX
:如果一個鍵不存在則建立,存在不建立; -
XX
:如果一個鍵存在則建立,不存在不建立; -
exists robby
:判斷一個鍵值是否存在, 如果存在返回整數型別1 ,否則返回0; -
append robby "值"
:追加值; -
刪除鍵;
del key [key.....]
del robby
- 設定一個整數值,讓數值增加
set number 1
incr number (加1)
decr number (減1)
6.Redis中的5種資料型別
-
字串string :字串型別是Redis中最為基礎的資料儲存型別,是一個由位元組組成的序列,他在Redis中是二進位制安全的,這便意味著該型別可以接 受任何格式的資料,如JPEG影像資料貨Json物件描述資訊等,是標準的key-value,一般來存字串,整數和浮點數;
-
列表list :Redis的列表允許使用者從序列的兩端推入或者彈出元素,列表由多個字串值組成的有序可重複的序列,是連結串列結構,所以向列表兩端新增 元素的時間複雜度為0(1),獲取越接近兩端的元素速度就越快;
-
集合set :Redis的集合是無序不可重複的,和列表一樣,在執行插入和刪除和判斷是否存在某元素時,效率是很高的,集合最大的優勢在於可以進行 交集並集差集操作;
-
有序集合sorted set :類似set,都是字串的集合,都不允許重複的成員出現在一個set中,他們之間差別在於有序集合中每一個元素都會有一個 score與之關聯,這個score可用於排序和排名;
-
雜湊hash :Redis中的雜湊可以看成具有String key和String value的map容器,可以將多個key-value儲存到一個key中,每一個Hash可以儲存 4294967295個鍵值對;
7.Redis 事務
-
Redis 事務可以一次執行多個命令,多個操作要麼一次性執行完畢,要麼都不執行;
-
一個事務從開始到執行會經歷三個階段:開始事務、命令入隊、執行事務;
# 使用multi開啟一個事務
multi (開啟一個事務日誌)
set name yhy
set age 25
set address changsha
exec (提交,執行)
8.什麼是Redis持久化
-
Redis支援RDB和AOF兩種持久化機制,持久化功能有效地避免因程式退出造成的資料丟失問題,下次重啟時利用之前持久化的檔案即可實現資料恢 復;
-
RDB持久化方式會在一個特定的間隔儲存那個時間點的一個資料快照;
-
AOF持久化方式則會記錄每一個伺服器收到的寫操作;
-
Redis的持久化是可以禁用的,就是說你可以讓資料的生命週期只存在於伺服器的執行時間裡;
-
兩種方式的持久化是可以同時存在的,但是當Redis重啟時,AOF檔案會被優先用於重建資料;
9.Redis的sentinel機制
### 啟動systemctl
systemctl start redis-sentinel.service
### 登入Sentinel,檢視主從狀態
redis-cli -p 26379
127.0.0.1:26379> info Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.23.10:6379,slaves=2,sentinels=1
### 停止Redis的master節點,登入sentinel檢視節點資訊
systemctl stop redis.service
[root@7 ~] # redis-cli -p 26379
127.0.0.1:26379> info sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.23.12:6379,slaves=2,sentinels=1
127.0.0.1:26379> sentinel masters
-
萬一主節點打擊,主從模型將會停止工作,為了解決這個問題,Redis提供了一個sentinel(哨兵),以此來實現主從切換的功能,一旦主節點當機了 ,sentinel將會在從節點中挑一個作為主節點, 與zookeeper類似;
-
Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案;
它的主要功能有以下幾點:
監控 :Sentinel不斷的檢查master和slave是否正常的執行;
通知 :如果發現某個redis節點執行出現問題,可以通過API通知系統管理員和其他的應用程式;
自動故障轉移 :能夠進行自動切換,當一個master節點不可用時,能夠選舉出master的多個slave中的一個來作為新的master,其它的slave節點會 將它所追隨的master的地址改為被提升為master的slave的新地址;
配置提供者 :哨兵作為Redis客戶端發現的權威來源:客戶端連線到哨兵請求當前可靠的master的地址,如果發生故障,哨兵將報告新地址;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908432/viewspace-2643882/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Redis的使用(二)Redis
- Redis在.net中的使用(2).net專案中的Redis使用Redis
- MongoDB和Redis的使用MongoDBRedis
- Redis在.net中的使用(5)Redis持久化Redis持久化
- Java Redis系列2 (redis的安裝與使用+redis持久化的實現))JavaRedis持久化
- redis api的使用和理解RedisAPI
- Redis管道技術的使用Redis
- SpringBoot+Redis的基本使用Spring BootRedis
- 中介軟體redis的使用Redis
- Redis Stream型別的使用Redis型別
- Spring Data Redis Stream的使用SpringRedis
- Redis在.net中的使用(6)Redis併發鎖Redis
- 使用redis統計ip的使用次數Redis
- Laravel 使用 RedisLaravelRedis
- SpringBoot使用RedisSpring BootRedis
- PHP使用redisPHPRedis
- Redis基本使用Redis
- Lumen使用RedisRedis
- Redis 高階特性 Redis Stream使用Redis
- Redis系列24:Redis使用規範Redis
- spring+redis的整合,使用spring-data-redis來整合SpringRedis
- Redis在.net中的使用(1)下載安裝RedisRedis
- Windows下安裝Redis及使用Python操作Redis的方法WindowsRedisPython
- Node.js 花盒:Redis 的使用Node.jsRedis
- Redis的正確使用姿勢Redis
- Redis的安裝及基本使用Redis
- Laravel-Redis 佇列的使用LaravelRedis佇列
- VideoOS 後端對Redis的使用IDE後端Redis
- redis原始碼解析----epoll的使用Redis原始碼
- Go實戰-redis的基本使用GoRedis
- Redis 中 HyperLogLog 的使用場景Redis
- Redis 中 BitMap 的使用場景Redis
- Redis 中 Keys 與 Scan 的使用Redis
- Redis最常用的使用場景Redis
- 【Azure Redis 快取 Azure Cache For Redis】使用Redis自帶redis-benchmark.exe命令測試Azure Redis的效能Redis快取
- Redis在.net中的使用(7)redis部署為Windows服務RedisWindows
- Redis 中的原子操作(3)-使用Redis實現分散式鎖Redis分散式
- node 之 redis 使用Redis