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


轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/308489.html
標籤:NoSQL
