Redis 入门知识
Redis 的前世今生
Redis的誕生于2008年,由Salvatore Sanfilippo開發。最初作者在開發一個網站時,需要實現一個高性能的隊列功能,在使用Mysql無果后,決定自己造一個輪子。自從Salvatore Sanfilippo將 Redis源碼在GitHub上開源后,就一發不可收拾。許多重量級的公司將Redis應用到他們的產品中,如國外的Twitter,Instagram,StackOverFlow, Github等,國內的如新浪微博,阿里巴巴,騰訊,百度,搜狐,優酷土豆等。
?
?
Redis 的特性
?速度快
- redis是使用C語言實現的,并且源碼實現的足夠好。
- redis基于內存存放數據,操作數據相對快。
- redis使用單線程架構,沒有多線程的切換和死鎖。
基于鍵值對數據結構服務器
??redis 所有數據以鍵值對的方式存放,鍵是字符串類型,但鍵所對應的值除了字符串類型,還可以是哈希,列表,集合,有序集合。
豐富的功能
- 提供了鍵過期功能,可以實現緩存
- 提供發布訂閱功能(基于列表的阻塞取值),可以實現消息系統
- luo基本,可以擴展新的redis命令
- 提供簡單的事務功能,將有關聯性的操作放在一起執行
- 提供流水線(Pipeline)功能,客戶端可以將一批命令一次性傳到Redis,減少網絡開銷
簡單穩定
- 代碼量比其他nosql少
- 單線程模型
- 不依賴其他類庫,redis自己實現了事件處理的相關功能
客戶端語言多
支持Java,PHP,Python,C, C++,Nodejs
持久化
提供了RDB和AOF兩種持久化方式,將內存的數據保存到硬盤中。
主從復制 ? ? ? ? ? ? ? ? ? ? ? ??
高可用和分布式
- 通過redis sentinel實現高可用,保證redis節點的故障發現和故障自動轉移。
- 通過redis cluster實現分布式部署
?
?
Redis 的應用場景
- 緩存
- 排行榜系統
- 計數器應用
- 社交網絡
- 消息隊列系統
?
?
Redis 如何安裝
redis不推薦在windows系統上部署,因為redis的許多特性都是與系統相關的。redis已在linux上有許多成功案例,絕大多數公司都使用linux系統開發和運維。
Linux 系統下安裝
$?wget http://download.redis.io/releases/redis-3.0.7.tar.gz
$ tar xzf redis-3.0.7.tar.gz
$ ln -s redis-3.0.7 redis
$ cd redis
$ make
$ make install
注意:這里使用軟連接將redis-3.0.7 連接到redis目錄,相當于做了redis-3.0.7的快捷方式,以后更新版本時,可以替換新版本的軟連接。
常用命令
redis-cli # 是redis的客戶端啟動命令,最主要功能是連接redis-server,通過tcp網絡協議,將要執行的命令發送給redis-server,并取回執行結果
?# 默認連接127.0.0.1:6379的redis-server。可以像這樣redis-cli get key 直接運行單條命令,或者通過redis-cli進入交互模式
redis-cli --help
redis-cli 3.0.7
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> Server hostname (default: 127.0.0.1).
-p <port> Server port (default: 6379).
-s <socket> Server socket (overrides hostname and port).
-a <password> Password to use when connecting to the server.
-r <repeat> Execute specified command N times.
-i <interval> When -r is used, waits <interval> seconds per command.
It is possible to specify sub-second times like -i 0.1.
-n <db> Database number.
-x Read last argument from STDIN.
-d <delimiter> Multi-bulk delimiter in for raw formatting (default: \n).
-c Enable cluster mode (follow -ASK and -MOVED redirections).
......
Examples:
cat /etc/passwd | redis-cli -x set mypasswd
redis-cli get mypasswd
redis-cli -r 100 lpush mylist x
redis-cli -r 100 -i 1 info | grep used_memory_human:
redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
redis-cli --scan --pattern '*:12345*'
?
redis-server # redis-server的啟動命令,不帶參數直接運行,會將redis-server 運行在本機的127.0.0.1:6379上。
? ? ? ? ? ? ? ? ? ? # 比較常用的是redis-server ./redis.conf 的方式啟動redis-server,其中,redis.conf是Redis目錄下一個默認配置文件,我們一般會以此為模板,將其修改為自己需要的啟動配置文件。
redis-server --help
Usage: ./redis-server [/path/to/redis.conf] [options]
./redis-server - (read config from stdin)
./redis-server -v or --version
./redis-server -h or --help
./redis-server --test-memory <megabytes>
Examples:
./redis-server (run the server with default conf)
./redis-server /etc/redis/6379.conf
./redis-server --port 7777
./redis-server --port 7777 --slaveof 127.0.0.1 8888
./redis-server /etc/myredis.conf --loglevel verbose
Sentinel mode:
./redis-server /etc/sentinel.conf --sentinel
?
redis-cli shutdown # 停止Redis服務,停掉的是127.0.0.1:6379 的redis-server服務
#redis在停止服務時,默認會生成持久化文件。我們可以通過redis-cli shutdown nosave | save 來控制
# 關閉Redis時,是否生成持久化文件。
?
以上內容參考 Redis開發與運維 一書
?
?
?
?
轉載于:https://www.cnblogs.com/linyihai/p/7425555.html
總結
以上是生活随笔為你收集整理的Redis 入门知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个qq网名文艺小清新
- 下一篇: 1公里多少钱啊?