redis 常用命令集合

歡迎關注微信公衆號:程序員小圈圈
原文首發於:www.zhangruibin.com
本文出自於:RebornChang的博客
轉載請標明出處^_^

redis 常用命令集合

redis是什麼

1.基於內存的key-value數據庫
2.基於c語言編寫的,可以支持多種語言的api //set每秒11萬次,取get 81000次
3.支持數據持久化
4.value可以是string,hash, list, set, sorted set

redis使用場景

  1. 去最新n個數據的操作
  2. 排行榜,取top n個數據 //最佳人氣前10條
  3. 精確的設置過期時間
  4. 計數器
  5. 實時系統, 反垃圾系統
  6. pub, sub發佈訂閱構建實時消息系統
  7. 構建消息隊列
  8. 緩存

redis使用方法

Windows

cmd訪問redis
redis-cli.exe -h 127.0.0.1 -p 6379

redis常用方法

key
keys * 獲取所有的key
select 0 選擇第一個庫
move myString 1 將當前的數據庫key移動到某個數據庫,目標庫有,則不能移動
flush db 清除指定庫
randomkey 隨機key
type key 類型

set key1 value1 設置key
get key1    獲取key
mset key1 value1 key2 value2 key3 value3
mget key1 key2 key3
del key1   刪除key
exists key      判斷是否存在key
expire key 10   10過期
pexpire key 1000 毫秒
persist key     刪除過期時間

string
set name cxx
get name
getrange name 0 -1 字符串分段
getset name new_cxx 設置值,返回舊值
mset key1 key2 批量設置
mget key1 key2 批量獲取
setnx key value 不存在就插入(not exists)
setex key time value 過期時間(expire)
setrange key index value 從index開始替換value
incr age 遞增
incrby age 10 遞增
decr age 遞減
decrby age 10 遞減
incrbyfloat 增減浮點數
append 追加
strlen 長度
getbit/setbit/bitcount/bitop 位操作

hash
hset myhash name cxx
hget myhash name
hmset myhash name cxx age 25 note “i am notes”
hmget myhash name age note
hgetall myhash 獲取所有的
hexists myhash name 是否存在
hsetnx myhash score 100 設置不存在的
hincrby myhash id 1 遞增
hdel myhash name 刪除
hkeys myhash 只取key
hvals myhash 只取value
hlen myhash 長度

list
lpush mylist a b c 左插入
rpush mylist x y z 右插入
lrange mylist 0 -1 數據集合
lpop mylist 彈出元素
rpop mylist 彈出元素
llen mylist 長度
lrem mylist count value 刪除
lindex mylist 2 指定索引的值
lset mylist 2 n 索引設值
ltrim mylist 0 4 刪除key
linsert mylist before a 插入
linsert mylist after a 插入
rpoplpush list list2 轉移列表的數據

set
sadd myset redis
smembers myset 數據集合
srem myset set1 刪除
sismember myset set1 判斷元素是否在集合中
scard key_name 個數
sdiff | sinter | sunion 操作:集合間運算:差集 | 交集 | 並集
srandmember 隨機獲取集合中的元素
spop 從集合中彈出一個元素

zset
zadd zset 1 one
zadd zset 2 two
zadd zset 3 three
zincrby zset 1 one 增長分數
zscore zset two 獲取分數
zrange zset 0 -1 withscores 範圍值
zrangebyscore zset 10 25 withscores 指定範圍的值
zrangebyscore zset 10 25 withscores limit 1 2 分頁
Zrevrangebyscore zset 10 25 withscores 指定範圍的值
zcard zset 元素數量
Zcount zset 獲得指定分數範圍內的元素個數
Zrem zset one two 刪除一個或多個元素
Zremrangebyrank zset 0 1 按照排名範圍刪除元素
Zremrangebyscore zset 0 1 按照分數範圍刪除元素
Zrank zset 0 -1 分數最小的元素排名爲0
Zrevrank zset 0 -1 分數最大的元素排名爲0
Zinterstore
zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325 weights 1 1 1 1 1 1 1

排序:
sort mylist 排序
sort mylist alpha desc limit 0 2 字母排序
sort list by it:* desc by命令
sort list by it:* desc get it:* get參數
sort list by it:* desc get it:* store sorc:result sort命令之store參數:表示把sort查詢的結果集保存起來

訂閱與發佈:
訂閱頻道:subscribe chat1
發佈消息:publish chat1 “hell0 ni hao”
查看頻道:pubsub channels
查看某個頻道的訂閱者數量: pubsub numsub chat1
退訂指定頻道: unsubscrible chat1 , punsubscribe java.*
訂閱一組頻道: psubscribe java.*

redis事物:
隔離性,原子性,
步驟: 開始事務,執行命令,提交事務
multi //開啓事務
sadd myset a b c
sadd myset e f g
lpush mylist aa bb cc
lpush mylist dd ff gg

服務器管理
dump.rdb
appendonly.aof
//BgRewriteAof 異步執行一個aop(appendOnly file)文件重寫
會創建當前一個AOF文件體積的優化版本

//BgSave 後臺異步保存數據到磁盤,會在當前目錄下創建文件dump.rdb
//save同步保存數據到磁盤,會阻塞主進程,別的客戶端無法連接

//client kill 關閉客戶端連接
//client list 列出所有的客戶端

//給客戶端設置一個名稱
  client setname myclient1
  client getname
  
 config get port
 //configRewrite 對redis的配置文件進行改寫

rdb
save 900 1
save 300 10
save 60 10000

aop備份處理
appendonly yes 開啓持久化
appendfsync everysec 每秒備份一次

命令:
bgsave異步保存數據到磁盤(快照保存)
lastsave返回上次成功保存到磁盤的unix的時間戳
shutdown同步保存到服務器並關閉redis服務器
bgrewriteaof文件壓縮處理(命令)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章