1. 程式人生 > 實用技巧 >原型鏈:物件沿著__proto__查詢

原型鏈:物件沿著__proto__查詢

庫命令

select 1    # 切換到1號資料庫
dbsize      # 檢視當前資料庫的資料數量
keys *      # 檢視當前資料庫的所有key
flushdb     # 清空當前資料庫
flushall    # 清空所有資料庫

 

String(字串)

set name liuyu        # 存入一個key為name,值為liuyu的k-v資料
get name              # 將返回這個key對應的value
exits name            # 判斷當前key是否存在,存在返回1 否則返回0
move name 1           # 移動這個k-v到指定資料庫
expire name 10        # 給k-v設定過期時間為10秒
ttl name              # 檢視這個k-v的有效時間
type name              # 檢視當前key的型別
append name "hh"     # 在key對應的值後邊拼接字串,如果key不存在,則相當於set
strlen name            # 檢視這個key對應value的長度
set views 0            # 這裡設定一個整數
incr views             # 自增1
decr views             # 自減1
incrby views 5         # 自增5
decrby views 5         # 自減5
getrange name 1 2      # 返回指定下標範圍的值
getrange name 0 -1     # 返回整個值
setrange name 1 ab     # 將下標為1的值替換為ab
setex name1 10 "aaa"   # 如果name1不存在則建立,如果存在則覆蓋,並設定10秒過期,    具有原子性。
setnx name2 bbb        # 如果不存在這個key則建立成功並返回1,否則返回0
mset k1 v1 k2 v2 k3 v3 # 批量設定多個k-v
mget k1 k2 k3          # 批量返回相應key對應的value
msetnx k1 v1 k4 v4     # 批量不存在時設定,具有原子性,如此時k1存在但k4不存在,依舊設定失敗返回0
set user:1 {name:liuyu,age:10} # 設定一個物件
mset user:1:name liuyu user:1:age 10 # 效果同上
getset name ccc        # 先get再set,不存在時返回nil,但set依舊生效,存在則覆蓋 

 

List(列表)

lpush list one   # 往list左側插入值
lrange list 0 -1  # 返回list中所有值
rpush list four   # 往右側插入值
lpop list       # 移除list左側元素,並返回該元素
rpop list       # 移除list右側元素,並返回該元素
lindex list 0    # 獲取list中指定下標為0的值
llen list       # 返回list的長度
lrem list 1 value  # 移除list中指定個數的value值
ltrim list 1 2   # 截斷list,保留指定下標的值
rpoplpush list hello # 從list右側移除一個元素並返回,且將該元素插入list
exists list       # 判斷list是否存在,存在返回1,不存在返回0
lset list 0 hello   # 修改列表指定位置的值,需要列表和該位置不為空,否則報錯
linsert list v1 before v0  # 往list列表的v0前邊插入v1
linsert list v1 after v2  # 往list列表的v2後邊插入v1

 

Set(集合)

無序且不重複。

應用:共同關注,二度好友(六度分割理論)

sadd myset "hello"    # set集合中新增元素
smembers myset        # 檢視指定set的所有值
sismember myset hello # 判斷某一個值是不是存在set集合中(如果存在,返回1,否則返回0)
scard myset              # 獲取set集合中的元素個數
srem myset "hello"      # 移除set集合中的指定元素
srandmember myset      # 隨機抽選出一個元素
spop myset              # 隨機刪除一些set集合中的元素
smove myset myset2 "hello" # 將一個指定的值,移動到另一個set集合
sdiff key1 key2       # 求差集
sinter key1 key2      # 求交集(比如用於查詢共同好友)
sunion key1 key2      # 求並集

 

Hash(雜湊)

應用:更適合物件的儲存,經常變動的資訊

hset myhash field1 liuyu    # set一個具體的key-value
hget myhash field1            # 獲取一個欄位值
hmset myhash field1 hello field2 world # set多個key-value
hmget myhash field1 field2  # 獲取多個欄位值
hgetall myhash                 # 獲取全部資料(包括key)
hdel myhash field1            # 刪除hash指定的key,對應的value也就沒有了
hlen myhash                 # 獲取hash表的欄位數量
hexists myhash field1         # 判斷hash中指定欄位是否存在
hkeys myhash                 # 只獲得所有field
hvals myhash                 # 只獲得所有value
hincrby myhash field3 1        # 指定增量
hsetnx myhash field4 hello  # 如果存在則不能設定

 

Zset(有序集合)

應用:資料排序,排行榜,帶權重判斷

zadd myset 1 one        # 新增一個值
zrange myset 0 -1        # 檢視集合元素
zrangebyscore myset -inf +inf #從小到大排序(-inf為無限小,+inf為無限大)
zrevrange salary 0 -1   # 從大到小排序
zrem myset liuyu         # 移除有序集合中的指定元素
zcard myset                # 獲取有序集合中的個數 
zcount myset 1 3        # 獲取指定區間的元素個數