redis 入門筆記

redis簡介:git

  Redis是REmote DIctionary Server(遠程字典服務器)的縮寫,它以字典結構存儲數據,並容許其餘應用經過TCP協議讀寫字典中的內容;redis數據庫是提供內存存儲和持久化,因爲是內存存儲所以Redis能夠在一秒內讀寫超過10萬個鍵值,因爲將數據存儲在內存中,當程序退出後內存中的數據會丟失,所以redis提供了持久層,便可以將內存中的數據異步寫入到硬盤中,同時又不影響提供服務。github

redis支持的鍵值類型:redis

  • 字符串類型:String
  • 散列類型:map
  • 列表類型:一個可從左或從右寫入的隊列,能夠實現棧和隊列 ,list
  • 集合類型:set
  • 有序集合類型:zset

redis功能豐富:數據庫

  • 能夠用做緩存、隊列等系統中
  • 能夠爲每一個鍵設置生存時間(TTL--Time To Live)
  • 能夠基於redis支持「發佈/訂閱」的消息模式構建聊天室等系統(Redis貢獻者之一Pieter Noordhuis 提供了一個用該模式開發的聊天室例子------https://gist.github.com/348262)

redis安裝:ubuntu

  安裝redis,你們能夠百度,一大堆,一些大佬分享的特別不錯centos

redis啓動:緩存

  • 直接啓動:直接運行redis-server便可,redis服務器默認會使用6379端口,啓動命令 $redis-server (使用默認端口啓動)  $redis-server --port 6380 (指定端口啓動)  
  • 經過初始化腳本啓動:在Linux系統中能夠經過初始化腳本啓動redis,使redis能夠隨着系統自動運行,在redis源代碼目錄的utils文件夾中有一個redis_init_script的初始化腳本文件,並在初始化腳本中追加兩行代碼(橙色的部分),內容以下
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#
as it does use of the /proc filesystem. REDISPORT=6379 EXEC=/usr/local/bin/redis-server CLIEXEC=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid CONF="/etc/redis/${REDISPORT}.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
  • 而後咱們須要配置redis的運行方式和持久化文件、日誌文件的存儲位置等,具體步驟以下:
  1. 配置初始化腳本:首先將初始化腳本複製到/etc/init.d目錄中,文件名爲 「redis_端口號」,而後修改腳本第6行的REDISPORT變量的值爲一樣的端口號。
  2. 建立須要的文件夾,即/etc/redis(存放redis配置文件)、/var/redis/端口號(存放redis的持久化文件)
  3. 修改配置文件:首先將配置文件模板(位於源代碼目錄的根目錄中)複製到/etc/redis 目錄中,以端口號命名(如「6379.conf」),而後按照下表其中的部分參數進行編輯配置。
daemonize yes 使redis以守護進程模式運行
pidfile /var/run/redis_端口號.pid 設置redis的PID文件位置
port 端口號 設置redis監聽的端口號
dir /var/redis/端口號 設置持久化文件存放位置

到如今爲止就可使用 /etc/init.d/redis_端口號start來啓動redis了,若是要跟隨系統自啓動還須要執行命令:$sudo update-rc.d redis_端口號 defaults (針對ubuntu操做系統),若是是centos操做系統,命令爲chkconfig redis_端口號 no(這樣就能夠經過service redis_端口號 start 啓動了)。bash

redis基本命令:服務器

  • 鍵值操做:
  1. 獲取符合的鍵值:KEYS  pattern (pattern支持glob風格通配符格式以下表所示)
匹配一個字符
* 匹配多個字符
[] 匹配括號間的任一字符,可使用「-」表示一個範圍,如a[b-d]能夠匹配「ab」、「ac」,「ad」
\X 匹配字符X,用於轉義符號
  1. 判斷一個鍵是否存在:EXISTS key  (返回整型1爲存在,返回0爲不存在)
  2. 刪除鍵:DEL key[key...]  (能夠刪除一個或多個鍵,返回值是刪除鍵的個數)
  3. 獲取鍵值的數據類型:TYPE key
  • 字符串類型存儲:
  1. 賦值與取值:
    1. SET key value   
    2. GET key (當鍵不存在時,返回結果爲空)
  2. 擴展:
    1. 生成遞增數字做爲key:INCR key
    2. 獲取value字符串長度:select key  
  • 散列類型存儲:
  1. 賦值與取值:
    1. HSET key field value
    2. HSET key field
    3. HMSET key field value [field value ...]
    4. HMGET key field [field ...]
    5. HGETTALL key
    6. HEXISTS
      1. 例子:HSET car price 500,HSET car name BMW
  2. 擴展:散列類型至關於存儲的是一個對象,以下表所示:
name price
BMW 500
B 1000
  • 列表類型(至多2^32-1個字符串)
  1. 向列表兩端增長元素
    1. LPUSH key value [value ...]  (向左邊增長)
    2. RPUSH key value [value ...]  (向右邊增長)
  2. 從列表兩端彈出元素
    1. LPOP key  (從左側彈出一個元素)
    2. RPOP key (從右側彈出一個元素)
  3. 獲取列表中元素的個數
    1. LLEN key 
  4. 刪除列表指定的值
    1. LREM key count value
  5. 這裏補充一點,Java是經過序列化對象列表實現redis整存整取的
  • 集合類型(至多2^32-1個字符串)
  1. 增長/刪除元素
    1. SADD key member[member ...]
    2. SREM key member[member ...]
  2. 獲取集合中的全部元素
    1. SMEMBERS key
  3. 判斷元素是否在集合中
    1. SISMEMBER key member
  • 有序集合類型
  1. 增長元素
    1. ZADD key score member [score member ...]
  2. 得到元素的分數
    1. ZSCORE key member
  3. 得到排名在某個範圍的元素列表
    1. ZRANGE key start stop [WITHSCORES]
    2. ZREVRANGE key start stop [WITHSCORES]

        說明:當stop爲-1時表示最後一個元素異步

  4.獲取指定分數範圍的元素

      1.ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]   例如 ZRANGEBYSCORE scoreboard 80 (100  ,表示獲取分數在80,100之間的同窗,「(」表示不包含100

 

 【未完待續】

相關文章
相關標籤/搜索