Redis簡介
Redis作為熱點資料的快取服務器,還有其支援隊列以及發布/訂閱等多種情境的特點,在很多項目中都會被普遍的使用到。在Redis的官方網站redis.io中可以看到以下描述:
Redis is an open source (BSD licensed), in-memory data structure store, used as a 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是開源,BSD許可,進階的key-value儲存系統. 可以用來儲存字串,雜湊結構,鏈表,集合,因此,常用來提供資料結構服務.
Redis安裝
筆者當前redis的最新穩定版本是redis-4.0.1,也可以前往官網redis.io進行下載。
1.解壓縮,並進入目錄redis-4.0.1
[root@centos-server-yzr ~]# tar -xvzf redis-4.0.1.tar.gz
2.不用configure,編譯make
[root@centos-server-yzr redis-4.0.1]# make
3.可選操作 make test
4.安裝到指定的目錄,比如 /usr/local/redis
[root@centos-server-yzr redis-4.0.1]# cd /usr/local
[root@centos-server-yzr local]# mkdir redis
重新進入redis-4.0.1,進行make install
[root@centos-server-yzr redis-4.0.1]# make PREFIX=/usr/local/redis install
執行過程發生錯誤:/bin/sh: cc: command not found
安裝cc命令:[root@centos-server-yzr redis-4.0.1]# yum install gcc
重新make install即可
此時進入指定的安裝目錄/usr/local/bin下可以看到以下檔案:
5.複製redis的設定檔 redis.conf
在下載下來的源檔案中有包含一份redis.conf,將此設定檔複製一份到我們剛才安裝的指定目錄下:cp redis.conf /usr/local/redis
6.啟動與測試
此時就可以運行redis服務進程了:./bin/redis-server ./redis.conf
另開一個串連,使用redis-cli進行串連服務進程:
redis服務進程如果想關閉的話可以直接按Ctrl+C,或者關閉終端即可。redis用戶端執行quit命令即可退出。
7.此時redis服務進程是以終端的形式進行啟動並執行,這樣會導致如果關閉終端的話,redis服務進程也會跟著關閉,所以我們設定redis以後台服務進程的形式進行運行
先停止redis服務進程,修改redis.conf設定檔,預設情況下,daemonize屬性值為no,這裡為讓redis以後台服務進程的形式運行,更改daemonize屬性為yes:
然後重啟啟動即可。
以後台服務進程啟動並執行redis會列印以下訊息:
處於daemonize為yes運行狀態的redis服務,如果想關閉的話,要使用用戶端的以下命令:(關閉的是本地的redis服務進程)
[root@centos-server-yzr redis]# ./bin/redis-cli-p 6379 shutdown
Redis常用通用Key使用
redis命令說明文檔連結:http://redisdoc.com/
1.查看當前database下的所有key
命令:keys pattern 有3個萬用字元 *, ? ,[]
*: 通配任意多個字元 ?:通配單個字元 []: 通配括弧內的某1個字元
2.當前database下隨機返回一個key
命令:randomkey
3.查詢當前database下key是否存在
命令:exists key 存在返回1,否則返回0
4.查詢指定key儲存的值的類型
命令:type key有string,link,set,order set, hash等
當key不存在時返回none
5.刪除key 多個key以空格分隔
命令:del key1 key2 ... 成功刪除存在的key返回1,否則返回0
6.重新命名key
命令:rename key newkey當重新命名newkey名已經存在,則會覆蓋掉之前的key
如果key不存在,則會報錯(error) ERR no such key
7.重新命名key
命令:renamenx key newkey
重新命名成功返回1,否則返回0
8.更換database
命令:select database序號
redis.config設定檔下的database屬性的值為16,一個redis進程,開啟了不止一個資料庫,預設開啟16個資料庫,從0到15編號,使用select可以切換redis的database。
9.移動key到指定的database中去
命令:move key db
10.查詢key的生命週期
命令:ttl key 返回是秒數
當key不存在時返回-2,當key是會話永久有效時返回-1,否則返回還剩餘的有效秒數
11.設定key的生命週期
命令:expire key s s是指秒數
·12.以毫秒為單位的查詢以及設定生命週期命令
同理:
pexpire key毫秒數,設定生命週期
pttl key,以毫秒返回生命週期
13.設定key為永久有效
命令:persist key