redis基本操作
-
redis安裝簡單說明
cd redis-3.0.0
make
cd src
make install
mkdir -p /usr/local/redis/bin/ /usr/local/redis/etc #把所有命令移動到bin,把配置文件移動到etc下
-
redis介紹
鍵值存儲,它是數據結構服務器:字符串string,hash,鏈表list,集合set和有序集合zset。支持push,pop和add,remove。為了保證效率,都是存儲在內存中。周期性把數據更新到磁盤中,或者記錄到log里面,類似于mysql的binlog。
-
redis適用場合
1: 應用程序直接redis數據庫。應用程序直接向redis讀寫操作。
2: 應用程序直接訪問redis,如果失敗,訪問mysql。redis的數據和mysql數據進行同步。
適用操作:
1: 取最新的N個數據
2: 排行榜應用top n
3: 精確設置過期時間的應用、針對鍵來設置過期
4: 計數器
5: uniq操作
6: pub/sub構建實時消息
7: 隊列系統
8: 緩存
-
redis String操作
String是redis最簡單的數據類型,可以存放圖像(二進制)和對象(序列化)。下面是一些string的操作:
set name helloworld #設置name鍵
get name #獲取name值
mset key1 test1 key2 test2 #設置多個值
strlen name #查看長度
-
redis hash操作
hset user:001 name helloworld #設置user:001的name字段
hget user:001 name #獲取user:001的name值
hmset user:002 name helloworld age 20 #批量設置
hmget user:002 name age #批量獲取
hkeys user:002 #獲取user:002的所有鍵
hvals user:002 #獲取user:002的所有值
hgetall user:002 #獲取user:002的所有鍵值
-
redis list(雙向鏈表)
lpush list1 hello #從list1頭壓入hello
lpush list1 world #從list1頭壓入world
lrange list1 0 -1 #取出list1的,先取出world 再取出hello。棧
rpush list2 hello #從list2尾壓入hello
rpush list2 world #從list2尾壓入world
lrange list2 0 -1 #取出list2,先hello, 后world。隊列
llen list2 #返回鏈表中的元素。
-
redis set(無序集合)
sadd set2 one #向集合set2添加one
smembers set2 #查看集合set2里面的元素
scard set3 #返回set3中有幾個元素
-
redis zset(有序集合)
zadd zset1 1 one #向zset1添加one,順序號為1
zrange zset1 0 -1 withscores #查看zset3中的值和順序號
zcard zset3 #返回zset3元素的個數
-
redis日常操作命令
select 1 #選擇數據庫,默認是0
keys * #
keys * #取出所有key
keys my* #模糊匹配
quit exit #退出客戶端
dbsize #返回key的數量 select 0, 1, 15試下
info #查看redis信息
config get * #獲取配置的設置
flushdb #清空當前數據庫
flushall #清空所有數據庫
-
redis密碼設置
配置文件:requirepass helloworld 添加這個配置項
怎么驗證密碼: redis-cli -a helloworld ,或者先用redis-cli登錄后再auth helloworld驗證。
從服務器怎么設置主服務器的密碼驗證:masterauth helloworld
-
slave主從配置
一個master可以擁有多個slave,多個slave跟master都相連。重要:slave也可以跟slave相連。
主從復制master將數據庫快照并發送給slave。
從服務器的配置:
slaveof 172.16.0.4 6379
masterauth helloworld #如果需要配置密碼,則配置masterauth
info可以查一下主從復制信息
-
redis的事務
multi #進入事務的上下文
set age 10 #會放到隊列里面
set age 20 #還會放隊列
exec #然后執行事務
discard #不執行事務,事務回滾
-
redis持久化
1: snapshotting(快照,將數據存在文件里面) 默認方式,二進制方式
2: append-only(將操作存在文件里面)
數據持久化:n秒內如果有m個key修改,則保存。
save 900 1 #如果在900s有1個key被修改,則保存
save 300 10 #如果300s內有10key被修改,則保存
save 60 10000 #如果60s內有10000個key被修改,則保存
操作持久化:每次操作都寫到文件中。重啟時候,重新執行一次aof文件即可。由于系統還可能存在緩存。
appendonly yes #啟用操作持久化
appendfsync always #每次都寫
appendfsync everysec #每1s
appendfsync no #隨著系統
-
redis訂閱與發布
SUBSCRIBE tv1 tv2 #定閱tv1 tv2頻道
publish tv1 test #向tv1發送數據