在 CentOS7 之部署 Redis3

来源:http://www.cnblogs.com/hapday/archive/2016/06/26/5617711.html
-Advertisement-
Play Games

CentOS7 之 Redis3 學習筆記 1 Redis 官網: http://www.redis.io/ 2 Redis 的下載地址: http://download.redis.io/releases/redis-3.0.7.tar.gz 這裡我們下載的是 redis-3.0.7.tar.gz ...


CentOS7 之 Redis3 學習筆記

1 Redis 官網:
http://www.redis.io/

2 Redis 的下載地址:
http://download.redis.io/releases/redis-3.0.7.tar.gz
這裡我們下載的是 redis-3.0.7.tar.gz

3 Redis 的簡介:
Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
這段話來源於 Redis 的官網,這個是不是最有說服力!?^_^

4 我們可以通過 SecureCRT 或 XShell 連接至 CentOS7 伺服器,併進入到 /usr/local/tools/ 目錄中:
cd cd /usr/local/tools/
如果沒有此目錄,則創建,這個目錄主要用於存放我們下載的一些安裝包:
mkdir -p /usr/local/tools/

5 下載 redis-3.0.7.tar.gz 源碼:
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
也可以點擊官網的 http://download.redis.io/releases/redis-3.0.7.tar.gz 地址現在下載到本機,然後通過 SecureFXP 上傳到 /usr/local/tools/ 目錄;

6 將 redis-3.0.7.tar.gz 源碼解壓縮:
tar xzf redis-3.0.7.tar.gz

7 編譯 Redis 源碼:
進入到 Redis 的根目錄 redis-3.0.7 中:
cd redis-3.0.7
執行編譯命令:
make

8 我們來啟動一下 Redist 伺服器吧:
src/redis-server
shell 給我們如下反饋,則表明 redis 服務啟動成功:
1206:C 04 May 05:48:48.344 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.7 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 1206
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'

1206:M 04 May 05:48:48.347 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1206:M 04 May 05:48:48.347 # Server started, Redis version 3.0.7
1206:M 04 May 05:48:48.347 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1206:M 04 May 05:48:48.347 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
1206:M 04 May 05:48:48.355 * DB loaded from disk: 0.008 seconds
1206:M 04 May 05:48:48.355 * The server is now ready to accept connections on port 6379
說明:redis 的預設埠號為 6379,我們可以看到當前的 redis 的 PID 為 1206,處於單機運行狀態;src 目錄下的 redis-server 表示 redis 服務端命令;

9 只啟動了 redis 的服務端並沒有什麼具體的意義,那我們開始啟動 redis 的客戶端,來體驗一下 redis 的魅力所在:
src/redis-cli
src 下的 redis-cli 表示 redis 啟動客戶端的命令;

10 由於 redis 是由 C 語言開發,我們看一下 redis 支持的數據類型都有哪些,
String(字元串)
APPEND
BITCOUNT
BITOP
DECR
DECRBY
GET
GETBIT
GETRANGE
GETSET
INCR
INCRBY
INCRBYFLOAT
MGET
MSET
MSETNX
PSETEX
SET
SETBIT
SETEX
SETNX
SETRANGE
STRLEN
Hash(哈希表)
HDEL
HEXISTS
HGET
HGETALL
HINCRBY
HINCRBYFLOAT
HKEYS
HLEN
HMGET
HMSET
HSET
HSETNX
HVALS
HSCAN
List(列表)
BLPOP
BRPOP
BRPOPLPUSH
LINDEX
LINSERT
LLEN
LPOP
LPUSH
LPUSHX
LRANGE
LREM
LSET
LTRIM
RPOP
RPOPLPUSH
RPUSH
RPUSHX
Set(集合)
SADD
SCARD
SDIFF
SDIFFSTORE
SINTER
SINTERSTORE
SISMEMBER
SMEMBERS
SMOVE
SPOP
SRANDMEMBER
SREM
SUNION
SUNIONSTORE
SSCAN
SortedSet(有序集合)
ZADD
ZCARD
ZCOUNT
ZINCRBY
ZRANGE
ZRANGEBYSCORE
ZRANK
ZREM
ZREMRANGEBYRANK
ZREMRANGEBYSCORE
ZREVRANGE
ZREVRANGEBYSCORE
ZREVRANK
ZSCORE
ZUNIONSTORE
ZINTERSTORE
ZSCAN

11 redis 文檔的中文翻譯網站:
http://doc.redisfans.com/
有不明白的或遺忘的可以來這裡查看;

12 redis 的基本數據單位為 SDS(simple dynamic string),其是在 C 語言的 char[] 數組之上封裝的,用於存儲基本的數據;

13 set 與 get 字元串:
我們向 redis 伺服器插入一個字元串類型的數據:
127.0.0.1:6379> set name 'idea'
shell 反饋給我們的結果如下:
OK
我們查看一下剛剛插入到 redis 伺服器的 key 為 name 的 value :
127.0.0.1:6379> get name
shell 反饋給我們的結果如下:
"idea"

14 我們做一個自增序列:
14.1 設置一個 key 為 orderid 序列,給其初始值為 10000:
incrby orderid 10000
14.2 逐次執行遞增操作:
incr orderid
查看 shell 反饋給我們的結果,是不是 redis 在以 1 的步長間隔遞增?

15 我們做一個列表操作:
15.1 向 List 中自左向右加入 5 個整數:
127.0.0.1:6379> lpush nums 10 20 30 40 50
shell 反饋給我們的結果如下:
(integer) 5
15.2 我們從右側取值,執行 5 次下麵的命令,並查看 shell 的反饋:
127.0.0.1:6379> rpop nums
"10"
127.0.0.1:6379>
127.0.0.1:6379> rpop nums
"20"
127.0.0.1:6379> rpop nums
"30"
127.0.0.1:6379> rpop nums
"40"
127.0.0.1:6379> rpop nums
"50"
127.0.0.1:6379> rpop nums
(nil)
127.0.0.1:6379> rpop nums
(nil)
當執行第 6 次的時候,取不到值了,這像不像數據結構中的“堆”?
15.3 我們從左側取值,執行 5 次下麵的命令,並查看 shell 的反饋:
127.0.0.1:6379> lpop nums
"50"
127.0.0.1:6379> lpop nums
"40"
127.0.0.1:6379> lpop nums
"30"
127.0.0.1:6379> lpop nums
"20"
127.0.0.1:6379> lpop nums
"10"
127.0.0.1:6379> lpop nums
(nil)
當執行到第 6 次後,也是取不到值了,樣子還是很像數據結構中的“堆”的嘛!

 


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

-Advertisement-
Play Games
更多相關文章
  • 1.數據區分 手機端:常量存儲 伺服器端:資料庫建表存儲 2.數據來源 android,ios,pc,wap 3.數據採集,數據挖掘 IMEI:設備編號 IMSI:SIM卡編號 4.數據加密 4.1RSA演算法 4.2簡單代碼處理:時間戳(SimpleDateFormat)+隨機值(Random) 4 ...
  • Paxos演算法是萊斯利·蘭伯特(Leslie Lamport)1990年提出的一種基於消息傳遞的一致性演算法。Paxos演算法解決的問題是一個分散式系統如何就某個值(決議)達成一致。在工程實踐意義上來說,就是可以通過Paxos實現多副本一致性,分散式鎖,名字管理,序列號分配等。比如,在一個分散式資料庫系 ...
  • mysql -u root -p 輸入密碼進入資料庫 show database; 查詢當前庫 use databasename 切換到某個庫 show tables; 列出當前資料庫的表 desc tbalename 列出表的欄位 select user() + + | user() | + + ...
  • 一些需求是原生Flume無法滿足的,因此,基於開源的Flume我們增加了許多功能。 EventDeserializer的缺陷 Flume的每一個source對應的deserializer必須實現介面EventDeserializer,該介面定義了readEvent/readEvents方法從各種日誌 ...
  • 舉個例子如一張消息表 結構如些 Id (自增主鍵) Content(內容) UserId(說話人Id) IsWonderful(是否是精彩發言) Top(是否置頂) IsBarrage( 是否是彈幕) 當這個結構的表 數據還少時取 經常發言 置頂發言 和彈幕 速度比較快 但是數據一多 30多萬條的時 ...
  • 下麵是些泛泛的基礎知識,但是真正搞機器學習的話,還是非常有用。像推薦系統、DSP等目前項目上機器學習的應用的關鍵,我認為數據處理非常非常重要,因為很多情況下,機器學習的演算法是有前提條件的,對數據是有要求的。 機器學習強調三個關鍵詞:演算法、經驗、性能,其處理過程如下圖所示。 上圖表明機器學習是數據通過 ...
  • 首先先介紹幾個關鍵字 1 show status 表示資料庫當前的狀態數據 show [session|global] status session是當前連接的統計結果 global 是資料庫服務啟動以來 所有的統計結果 show status like ‘Com_%’; 其中Com_XXX表示XX ...
  • sql資料庫表連接,主要分為:內連接、外連接(左連接、右連接 、全連接)、交叉連接,今天統一整合一下,看看他們的區別。 首先建表填充值。 學生表:student(id,姓名,年齡,性別 ) 成績表:score(id,學生id,成績) 一、內連接(inner join……on) select stud ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...