1.配置阿里雲yum源

  下載配置檔案
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  生成快取
    yum makecache

2.安裝redis

2.1 安裝依賴

yum install -y gcc-c++ gcc tcl

2.2 上傳壓縮包並解壓

  tar -xvf redis-3.0.0.tar.gz

2.3 編譯

  cd redis-3.0.0

  make

  # make test

建立安裝目錄

  mkdir -p /usr/local/soft/redis

安裝

  make PREFIX=/usr/local/soft/redis install

2.4 複製配置檔案

  cp /usr/local/soft/redis-3.0.0/redis.conf /usr/local/soft/redis/bin/

配置環境變數

  vim /etc/profile

增加

  export REDIS_HOME=/usr/local/soft/redis/

在PATH後面增加 $REDIS_HOME/bin

使環境變數生效
source /etc/profile

5、啟動redis

後臺啟動

  cd /usr/local/soft/redis/bin

  nohup redis-server redis.conf &

關閉redis
  ps -aux | grep redis

  kill -9

6、連線redis

  redis-cli

插入一條資料

  set key1 value1

查詢資料

  get key1

3.Redis的使用

設定字串

    SET key value [EX seconds] [PX milliseconds] [NX|XX]

    EX 設定過期時間,秒,等同於SETEX key seconds value

    PX 設定過期時間,毫秒,等同於PSETEX key milliseconds value

    NX 鍵不存在,才能設定,等同於SETNX key value

    XX 鍵存在時,才能設定

設定多個鍵的字串值

  MSET key value [key value ...]

鍵不存在時,設定字串值

    MSETNX key value [key value ...]

注意:這是原子操作 設定時有一個錯誤就全部錯誤

過期

Redis中可以給Key設定一個生存時間(秒或毫秒),當達到這個時長後,這些鍵值將會被自動刪除

設定多少秒或者毫秒後過期

EXPIRE key seconds PEXPIRE key milliseconds

設定在指定Unix時間戳過期

EXPIREAT key timestamp PEXPIREAT key milliseconds-timestamp

刪除過期

PERSIST key

檢視剩餘生存時間

TTL key(返回時秒數)

PTTL key(返回毫秒數)

key存在但沒有設定TTL,返回-1 key存在,

但還在生存期內,返回剩餘的秒或者毫秒 key曾經存在,

但已經消亡,返回-2(2.8版本之前返回-1)

查詢鍵

KEYS pattern

pattern取值

*

任意長度字元 ?

任意一個字元 [] 字元集合,表示可以是集合中的任意一個

鍵型別

TYPE key

鍵是否存在

EXISTS key

鍵重新命名

RENAME key newkey

RENAMENX key newkey

鍵刪除

DEL key [key ...]

FLUSHALL(刪除所有鍵值對)

獲取值

GET key

獲取多個給定的鍵的值

MGET key [key ...]

返回舊值並設定新值

GETSET key value 如果鍵不存在,就建立並賦值

字串長度

STRLEN key

追加字串

APPEND key value 如果鍵存在就追加;如果不存在就等同於SET key value

獲取子字串

GETRANGE key start end 索引值從0開始,負數表示從字串右邊向左數起,-1表示最有一個字元

覆蓋字串

SETRANGE key offset value

步長1的增減

INCR key

DECR key

字串值會被解釋成64位有符號的十進位制整數來操作,結果依然轉成字串

步長增減

INCRBY key decrement

DECR key decrement

字串值會被解釋成64位有符號的十進位制整數來操作,結果依然轉成字串

4.Redis點陣圖的使用

點陣圖不是真正的資料型別,它是定義在字串型別中

一個字串型別的值最多能儲存512M位元組的內容

位上限:2^(9+10+10+3)=2^32b

a --> 01100001
b --> 01100010

and
BITOP and dest1 a b
a and b ---> 0110 0000

or
BITOP or dest2 a b
a or b --> 01100011

xor
BITOP xor dest2 a b
a or b --> 00000011

not
BITOP not dest4 a
a ---> 10011110

redis的資料再記憶體中,位運算效率極高

可以通過getbit命令來獲取dest*的每一個值

設定某一位上的值

  SETBIT key offset value

  offset偏移量,從0開始 value不寫,預設是0

獲取某一位上的值

  GETBIT key offset

返回指定值0或者1在指定區間上第一次出現的位置

  BITPOS key bit [start] [end]

注意:

  除了 NOT 操作之外,其他操作都可以接受一個或多個 key 作為輸入

  當 BITOP 處理不同長度的字串時,較短的那個字串所缺少的部分會被看作 0

  空的 key 也被看作是包含 0 的字串序列

統計指定位區間上值為1的個數

BITCOUNT key [start] [end]

從左向右從0開始,從右向左從-1開始,注意官方start、end是位,測試後是位元組

BITCOUNT testkey 0

0表示從索引為0個位元組到索引為0個位元組,就是第一個位元組的統計

BITCOUNT testkey 0

-1等同於BITCOUNT testkey 最常用的就是 BITCOUNT testkey