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