Redis安裝-Redis常用命令-redis.conf配置信息總結

来源:http://www.cnblogs.com/chongpf/archive/2017/10/25/7728580.html
-Advertisement-
Play Games

1.學習Redis之前呢,首先需要安裝redis。 這裡使用的環境:VMware12,CentOS7 安裝對象:redis4.0.2 1.1 訪問redis.io網站查詢目前最新的redis發佈包,並copy資源地址(http://download.redis.io/releases/redis-4 ...


1.學習Redis之前呢,首先需要安裝redis。
這裡使用的環境:VMware12,CentOS7
安裝對象:redis4.0.2

1.1 訪問redis.io網站查詢目前最新的redis發佈包,並copy資源地址(http://download.redis.io/releases/redis-4.0.2.tar.gz)。

1.2開始安裝流程
1.2.1 centos上切換到root用戶。
1.2.2 創建redis的下載目錄:"cd /home/",”mkdir downloads"。然後跳轉進來"cd downloads/"
1.2.3 下載資源:"wget http://download.redis.io/releases/redis-4.0.2.tar.gz"
1.2.4 解壓資源:"tar -zxvf http://download.redis.io/releases/redis-4.0.2.tar.gz",解壓後會發現多出了redis-4.0.2目錄。
跳轉進來"cd redis-4.0.2/",繼續跳轉進入src目錄"cd src/"
1.2.5 編譯"make"。等待編譯結束。通過"ls"命令,發現生成編譯後的可執行文件,顏色為墨綠色。
1.2.6 安裝"make install"
1.2.7 把必要文件copy到常用的目錄下(事先創建 mkdir -p /usr/lcoal/redis/etc/ ; mkdir -p /usr/local/redis/bin/)。
copy redis.conf文件:"cp /home/downloads/redis-4.0.2/redis.conf /usr/local/redis/etc/"
copy 當前目錄下執行文件:"cp redis-check-aof redis-cli redis-server redis-benchmark redis-check-rdb redis-sentinel redis-trib.rb
/usr/local/redis/bin/ "
1.2.8 編輯redis.conf文件:"vim /usr/local/redis/etc/redis.conf"
設置redis的登錄密碼,增加如下內容(本例設置為password):"requirepass password"
設置為後臺啟動,修改daemonize參數:"daemonize yes"


1.3啟動redis-server並通過客戶端redis-cli登錄。
1.3.1啟動redis-server
跳轉到執行命令文件目錄:"cd /usr/local/redis/bin/"
執行啟動命令(配置文件設置為啟動參數):"./redis-server ../etc/redis.conf"
確認進程存在:"pstree -p | grep redis"
確認預設埠(redis預設埠6379):"netstat -tunpl | grep 6379"
1.3.2通過客戶端redis-cli登錄
執行客戶端命令,附帶登錄密碼:"./redis-cli -a password"

到這裡,安裝,伺服器啟動和客戶端登錄都已經完成。

2.redis是什麼,有什麼作用。
官方說明:redis是開源的使用ANSI C編寫,支持網路,可基於亦記憶體亦持久化的日誌型,key-value資料庫。並支持多語言API。
自己總結:開源,支持單線程寫操作,日常操作時在緩存中處理,數據訪問和操作很快,並基於持久化規則進行持久化。
和關係型資料庫協作工作時,定位於資料庫的緩存層,降低對mysql等DB伺服器的訪問壓力。
也有項目直接把redis作為最終的持久化資料庫使用。redis本身支持多種對象存儲類型,使用起來靈活方便。並支持master-slave備份以及搭建集群。
使用時需要考慮項目特點,分析出熱點數據進行redis緩存,不要濫用redids緩存。

3.redis支持的數據類型有String,Hash,List,Set,Zset(SortedSet)。
各類型的常用命令:string: set/get,mset/mget,
hash: hset/hget,hmset/hmget,hgetall,
list: lpush/lpop,rpush/rpop,lrange,lindex,llen,ltrim,blpop/brpop,rpoplpush,bpoplpush,
set: sadd,smembers,sismember,srem,scard,
zset: zadd,zrange,zrangebyscore,zscore,zrangebylex,zremrangebyscore,
zrevrange,zinter,zinterstore,zunion,zunionstore,zdiff,zdiffsotre
其他命令:
phadd,pfcount,
setbit,getbit,bitcount,bitop
keys,type,randomkey等常用命令。


4.在redis上把下麵命令全部執行一遍,認識會比較直觀,光看命令與結果的說明,印象不深刻。
所以這裡不列舉各個命令執行的結果。
關於set的交集、並集、差集的處理也比較有意思,可以多嘗試理解。
另外,bit操作的部分也需要花費一些時間進行深入理解,需要認清bit的每一位就是一個id,其中0和1代表該id的兩個狀態。
比如:id為0,1,2,3,4,5,6的七位用戶,今天登陸了app,那麼就可以在bit里記述為11111110,其中每個位元組8位,第8位沒有用時預設為0.
當需要記錄的id比較多時,redis會不斷擴大記憶體,每多一個位元組(8bits),就可以多放8個id的信息。
對多個存放bit數據的key,可以進行bitop操作,有 and與、or或、xor異或、以及not取反的選項處理。

#String
set key value
get key
mset key1 value1 key2 value2
mget key1 key2
set key value ex 10
expire key 10
keys *
del key
del key1 key2
set key 1
incr key
incrby key 10

#List(linked list)
lpush mylist 1 2 3 4 5
lpop mylist
rpush mylist 6 7 8 9 10
rpop mylist
lrange mylist 0 -1
ltrim mylist 0 -2
lpush mylist 1 1 1 1 1
lrem mylist 3 1
llen mylist

blpop mylist 10
brpop mylist 10
blpop nolist 10
brpop nolist 10

rpoplpush mylist nolist
rpop nolist
brpoplpush nolist mylist 10

#Hash
hset myhash f1 1
hget myhash f1
hmset myhash f1 1 f2 2 f3 3 f4 4 f5 5
hmget myhash f1 f2 f3 f4 f5
hgetall myhash
hdel myhash f4 f5
hgetall myhash
hincrby myhash f1 10

#Set
sadd jp wang li sun wu
sadd en wang li zhang zhao
sadd fr wang li fang xu
smembers jp
sismember jp wang
sinter jp en fr
sinterstore intersectionOfJpEnFr jp en fr
smembers intersecionOfJpEnFr
sunion jp en fr
sunionstore unionOfJpEnFr jp en fr
smembers unionOfJpEnFr
sdiff jp en fr
sdiffstore diffenceOfJpToEnFr jp en fr
smembers diffenceOfJpToEnFr
smove jp sun
smembers jp

sadd testset 1 2 3 4 5 6
srem testset 5 6
smembers testset
spop testset 2
smembers testset
del testset
sadd testset 1 2 3 4
srandmember testset 2
smembers testset

#ZSET
zadd zset1 10 wang 20 li 30 sun 40 xu 90 michael 100 sofia
zrange zset1 0 -1
zrangebyscore zset1 50 100
zscore zset1 michael
zadd zset2 0 a 0 apple 0 b 0 banana 0 w 0 watermallon
zrangebylex zset2 [a [b
zremrangebylex zset2 [a [b
zremrangebyscore zset2 0 100
zrange zset2 0 -1

#pf
pfadd key 1 2 3 4 1 2 5
pfcount key

#bit
#10/19 uid(from 1 to 15) login this websit
setbit stat1019 1 1
#(repeat excute setbit)
setbit stat1019 15 1

#10/20 uid(1,2,3,4,5,7,9) login this websit
setbit stat1020 1 1
#repeat
setbit stat1020 9 1

#10/21 uid(1,2,3,4,5,6,8,10) login this websit
setbit stat1021 1 1
#repeat
setbit stat1021 10 1

bitcount stat1019
bitcount stat1020
bitcount stat1021

#bitop and
bitop and statand stat1019 stat1020 stat1021
bitcount statand
gitbit statand 1
gitbit statand 15

#bitop or
bitop or stator stat1019 stat1020 stat1021
bitcount stator
gitbit stator 1
gitbit stator 15

#bitop not
#each byte has 8bits,for example setbit key 6 1,key will be 00000010
#not:it will be 11111101
bitop not statnot stat1019
bitcount statnot
bitget statnot 0
bitget statnot 1
bitget statnot 15

#bitop xor
#xor:for example xor A("00001111") B("11110011") C("00110011")
#firstly xor A and B => A1("11111100")
#secondly xor A1 and C =>A2("11001111")
bitop xor statxor stat1019 stat1020 stat1021
bitcount statxor
getbit statxor 1
getbit statxor 15

5.上述常用命令在實際操作後,進一步的學習,推薦先看redis.conf的各個參數的配置(英文1200行左右)。通過參數的說明,可以瞭解redis支持的各個方面機能。

比如:記憶體大小和清理策略,設置可訪問網路主機,安全設置,主從複製,集群設置,Aof-Rewrite機制,高級配置中關於高效hash list set zset等的設置。

下麵是各個模塊的重要設置信息:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • --死鎖/************************************************************************************************************************************************* ...
  • 上一篇,我們介紹Impala的相關操作。    下麵我們開始繼續進一步的瞭解Impala的相關操作。 ...
  • 相信使用過Oracle資料庫的人一定碰到過“ORA-12154: TNS: 無法解析指定的連接標識符”錯誤,我在此做一個小小的總結。 在程式中連接Oracle資料庫的方式與其他常用資料庫,如:MySql,Sql Server不同,這些資料庫可以通過直接指定IP的方式連接,但是Oracle則需要通過O ...
  • 在開發或者測試環境的資料庫中,經常會發現有開發或者測試人員誤刪除表或者數據的情況,對於開發或者測試庫,一般都沒有安排定時的備份任務去備份資料庫,一方面是由於存儲資源有限,不太可能給開發或者測試環境準備大量的存儲空間,二是必要性不是很強,開發或者測試庫的資料庫對象變化太多,通過還原備份的方式又有可能沖 ...
  • MySql技術內幕之MySQL入門(1) "MySql技術內幕之MySQL入門(1)" 檢查系統中是否已經安裝了MySQL 若沒有顯示已安裝結果,則沒有安裝。否則表示已經安裝。 安裝過程中會讓輸入密碼,記得把密碼記住。 登錄 本節SQL語句 MySql技術內幕之MySQL入門(2) "MySql技術 ...
  • SQL Server時間類型datetime 相容ADO的COleDateTime. SQL datetime 日期和時間數據,可表示1753.1.1 至 9999.12.31的時間,精度為1/300秒, 約0.33秒, 其在資料庫系統中的存儲為兩個4位元組的整形。 ...
  • 本文目錄:1.1 數據類型概覽1.2 存儲機制和操作方式 1.2.1 整型的存儲方式 1.2.2 字元類型的存儲方式 1.2.3 日期時間型的存儲方式 1.2.4 ENUM數據類型 1.2.5 SET數據類型1.3. 數據類型屬性:unsigned1.3. 數據類型屬性:zerofill 1.1 數 ...
  • ZooKeeper是什麼 ZooKeeper設計目的 ZooKeeper工作原理 Zookeeper的核心是原子廣播,這個機制保證了各個Server之間的同步。實現這個機制的協議叫做Zab協議(ZooKeeper Atomic Broadcast protocol)。Zab協議有兩種模式,它們分別是 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...