redis的基本命令學習 1.簡單理解redis 基於記憶體的key-value資料庫基於c語言編寫的,可以支持多種語言的api //set每秒11萬次,取get 81000次支持數據持久化value可以是string,hash, list, set, sorted set 使用場景: 去最新n個數據 ...
redis的基本命令學習
1.簡單理解redis
基於記憶體的key-value資料庫
基於c語言編寫的,可以支持多種語言的api //set每秒11萬次,取get 81000次
支持數據持久化
value可以是string,hash, list, set, sorted set
使用場景:
去最新n個數據的操作
排行榜,取top n個數據 //最佳人氣前10條
精確的設置過期時間
計數器
實時系統, 反垃圾系統
pub, sub發佈訂閱構建實時消息系統
構建消息隊列
緩存
2.常用命令
溫馨提示:要是有看不懂的可以查看官網 https://redis.io/commands 裡面有詳細介紹,想要瞭解這些基本命令,必須動手實現一篇而不是看一遍。
key
keys * 獲取所有的key select 0 選擇第一個庫//redis預設是16個資料庫 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 chao get name getrange name 0 1 字元串分段,得到 ch getset name new_chao 設置值,返回舊值 mset key1 key2 批量設置值 key1 value1 key2 value2 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 長度
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 這裡是根據索引改變值,沒有會報錯ERR index out of range ltrim mylist 0 4 刪除key,就是刪除0-4之外的值 linsert mylist before pivot a 插入 pivot是以它為軸,進行插入 linsert mylist after pivot a 插入 linsert mylist after name7 name10 rpoplpush list list2 將list中的最後一個值轉移到list2集合中
set
sadd myset redis smembers myset 數據集合 srem myset set1 刪除 sismember myset set1 判斷元素是否在集合中 scard key_name 個數 sdiff | sinter | sunion 操作:集合間運算:差集 | 交集 | 並集 srandmember 隨機獲取集合中的元素 spop 從集合中隨機彈出一個元素
hash
hset myhash name xxx hget myhash name hmset myhash name xxx age 25 note "i am notes" hmget myhash name age note 可以查找多個 hgetall myhash 獲取所有的鍵和值 hexists myhash name 查詢該name是否存在 hsetnx myhash score 100 設置不存在的 hincrby myhash id 1 遞增 hdel myhash name 刪除 hkeys myhash 只取key hvals myhash 只取value hlen myhash 長度
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