2016-12-21 14:54:20 該系列文章鏈接NoSQL 資料庫簡介Redis的安裝及及一些雜項基礎知識Redis 的常用五大數據類型(key,string,hash,list,set,zset)Redis 配置文件介紹Redis 持久化之RDBRedis 持久化之AOFRedis 主從複製 ...
2016-12-21 14:54:20
該系列文章鏈接
NoSQL 資料庫簡介
Redis的安裝及及一些雜項基礎知識
Redis 的常用五大數據類型(key,string,hash,list,set,zset)
Redis 配置文件介紹
Redis 持久化之RDB
Redis 持久化之AOF
Redis 主從複製
Redis 事務
Redis 發佈與訂閱
Redis jedis 介紹
Redis 相對其它類型的 NoSQL 資料庫而言,更出彩的一點就是有更多的數據類型共使用者選擇。
學習任意一門技術,都應該從官網入手,Redis官網(https://redis.io/),Redis 中文網(http://www.redis.cn/)(華為建立的)
本系列文章只講常用命令,對於完整命令及信息可以翻閱 Redis 命令參考(http://redisdoc.com/index.html)
既然 Redis 屬於鍵值對類型資料庫,那麼接下來來看看獨屬於鍵的命令吧
一.key
1.keys pattern:在本資料庫中查找對應某種格式的鍵
找到本資料庫中所有的鍵(* 代表1個或多個字元):keys *
2. 找到 study 名稱下所有的資料庫:keys study:*
3.exists key:判斷 key 鍵是否存在
查找 study:string:k2 和 study:string:k4 鍵值是否存在:
4.move key db:將 key 鍵移到 db 資料庫中
5.type key:求出 key 鍵的類型
6.expire key seconds:設置 key 的過期時間
7.ttl key :查詢 key 的過期時間
二. string
string 是字元串,key:value 鍵值對
string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
string類型是二進位安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。
string類型是Redis最基本的數據類型,一個redis中字元串value最多可以是512M
1.set/get/append string_name value
incr/incrby decr/decrby
若是 value 僅是數字,則可以用 incr/incrby decr/decrby 對 value 做加減操作
2.strlen
求字元串的長度
3.getrange/setrange
截取總串中的部分字元串
4.setex/setnx
setex:創建鍵值和過期時間
setnx:set if not exists
5.mset/mget/msetnx
對多個 string 進行操作
這張圖是關於三個命令的操作,以及一些特殊情況
mset key value [key]:若值已存在,則 value 覆蓋舊值,如果不希望的話,則使用 msetnx
msetnx:只會在所有給定 key 都不存在的情況下進行操作
6.getset
先取值再設置值
三.hash
Redis hash 是一個鍵值對集合。
Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。
1.hset/hget/hmset/hmget/hgetall/hdel
2.hlen
同上
3.hexists
同上
4.hincrby/hincrbyfloat
5.hsetnx
四.list
Redis 列表是簡單的字元串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)。
它的底層實際是個鏈表
1.lpush/rpush/lrange/lpop/rpop
lpush 入 list,可以把 list 當作棧來用
rpush 入 lsit,可以把 list 當作隊列來用
2.llen/lindex
3.lrem
lrem key count value:刪除 key 中重覆的值
4.ltrim
ltrim key begin end
5.rpoplpush
6.lset key index value
linsert key before/after value new_value
這兩個是在 list 中間插入的命令,效率很低,有興趣的可以自己試試
8.list 總結
它是一個字元串鏈表,left、right都可以插入添加。
如果鍵不存在,創建新的鏈表;如果鍵已存在,新增內容;如果值全移除,對應的鍵也就消失了。
鏈表的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很差了。
五.set
Redis的Set是string類型的無序集合。它是通過HashTable實現實現的,
set 是一個集合,既然是集合,那麼就是無序,不可重覆的。
1.sadd/srem/smembers/sismember
2.scard
3.srandmember
4.spop
5.smove
把 set1 中的元素 移到 set2 中
6.數學集合類
差集:sdiff
並集:sunion
交集:sinter
六.zset:sorted set
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重覆的成員。
不同的是每個元素都會關聯一個double類型的分數。
redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重覆。
1.zadd/zrem/zscore
2.zcard/zcount
3.zrange//zrangbyscore/zrank
zrangebyscore 命令仔細使用一下
http://redisdoc.com/sorted_set/zrangebyscore.html
4.zrevrange/zrevrangebyscore/zrevrank
這個自己去寫寫看