redis的簡介、安裝
一、背景介紹:
redis的全稱:remote dictonary server(遠程字典服務器)
誰在使用redis:
國內使用redis的有:新浪微博、知乎、街旁,國外的有:GitHub 、StackOverflow 、Flicker、暴雪和Instagram
redis是做什么用的:
高性能鍵值對數據庫 ,開發語言為:C,可以用作緩存和隊列系統
redis支持的鍵值數據類型:
字符串類型、散列類型、列表類型、集合類型、有序集合類型
內存存儲和持久化:
redis支持異步將內存中的數據寫到硬盤上,同時不影響繼續服務
redis和memcached的區別和聯系:
聯系:二者均可作為緩存系統
區別:redis是單線程的,memcached是多線程的,故在多核處理器環境下,memcacahed的性能會更高一些,但是由于redis基本上都是在內存中操作,所以這些性能上的差別幾乎可以不計,redis在高級數據類型和持久化方面要比memcached好一些
二、安裝以及運行
2.1 在posix系統中安裝:
redis約定此版本號,次版本號為偶數的為穩定版本(2.4.3),為奇數的是非穩定版本(2.11.1)
源碼安裝:a、從redis官網下載redis的穩定版源代碼(redis-stable.tar.gz)
b、tar xzf redis-stable.tar.gz cd redis-stable
c、make d、make install (將編譯生成的可執行文件拷貝到/usr/local/bin下)
e、最好執行 make test 確認安裝的正確與否
2.2 redis的啟動和停止
編譯后生成的可執行文件有:
a、 redis-server redis服務器 b、redis-cli redis 命令行客戶端 (command line interface) c、redis-benchmark 性能測試工具
d、redis-check-aof aof文件修復工具 e、redis-check-dump rdb文件檢查工具
啟動的兩種方式:
(1)、直接啟動:redis-server --port=8888 # 在8888 端口進行監聽,默認的是6379
(2)、通過初始化腳本啟動(以ubuntu和debian發行版為例)
在源代碼的utils的文件redis_init_script為redis初始化腳本模板
a、將redis_init_script拷貝到/etc/init.d 重命名為redis_8888 ,同時修改該腳本文件中的監聽的端口由默認的6379更改為8888
b、建立如下兩個文件夾:
/etc/redis 在其中存放配置文件,源文件位于:源代碼目錄的頂層目錄的redis.conf
/var/redis/8888 存放持久化文件
c、修改/etc/redis/redis.conf 為8888.conf,修改其中的一下四項:
daemonize yes 以守護進程的模式運行;pidfile /var/run/redis_8888.pid 設置redis的pid文件的位置
port 8888 ;監聽端口 dir /var/redis/8888 持久化文件的存儲位置
/etc/init.d/redis_8888 start 啟動redis
然后執行使redis隨系統的啟動而啟動sudo update-rc.d redis_8888 defaults
停止redis的方法:
redis-cli -p 8888 shutdown 這和使用kill redis的進程Id是一樣的
redis-cli的使用說明:
redis-cli -h 192.168.1.129 -p 8888 redis-server位于192.168.1.129 端口在8888
> ping # 客戶端和服務端是否連接正常 返回pong為正常
命令返回值類型:
狀態恢復、錯誤回復、整數回復、字符串回復、多行字符串回復
keys * #顯示當前的所有鍵
redis-server的配置:可以在啟動的時候指定配置文件
redis-server /path/redis.conf
redis-server /path/redis.conf --loglevel warn #這是配置文件中的loglevel選項將被命令行中的值替換
使用config set 可以在不重啟redis服務的情況下更改 部分 配置,使用config get loglevel獲取指定配置項的值
多數據庫:
redis-server默認有16個數據庫,在redis.conf中配置,在redis-cli中可以使用select來進行切換
使用flushall會將這個redis實例中的所有數據庫中的所有數據清空,并且一個redis實例中的所有數據庫是同一個密碼