redis 一共分爲五中基本數據類型:String、Hash、List、Set、Zset,本文只對這五中類型進行基本介紹,羅列一些經常使用的命令。redis
1)set hello world 數據庫
設置一個鍵爲 hello,值爲world的存儲,設置成功返回OK,屢次設置則會覆蓋app
2)get hellospa
讀取鍵爲hello的值,若獲取不到則返回(nil)code
3)del hello對象
刪除hello這個鍵值對排序
4)setnx hello world索引
這裏的nx=not exist,若是hello鍵不存在,建立並複製爲world,返回1;若是存在,則不會覆蓋,返回0three
5)s1etex hello 10 world隊列
這裏的ex=expired,設置hello的值爲world,而且有效期爲10秒,若是hello鍵存在,則覆蓋原有的,不存在則建立。
10秒內鍵值對存在有效,10秒後則自動消失,此時若是get hello,返回結果是nil。
6)setrange hello 1 O
此命令表示:setrange key offset value,即將key爲hello的字符串的第1位換成O,注意從0開始計數
如:set hello world;執行如上命令後,get hello -> wOrld。
7)批量設置命令
mset key1 1key2 2key3 3;批量設置值;
對應的mget key1 key2 key3,批量獲取值,也有msetnx和mget方法;
8)getset k1 v1
表示先取值,後複製,即返回結果爲原來的k1值,而後將k1的值換爲v1,過程以下
127.0.0.1:6379> get k1 (nil) 127.0.0.1:6379> getset k1 111 (nil) 127.0.0.1:6379> get k1 "111"
9)其餘命令
incr和decr方法:對某一個值進行遞增和遞減
(注:包括incr在內的全部redis命令都是原子操做,不管多少個客戶端同時鏈接,都不會出現累加丟失的狀況)
incrby和decrby方法:對某個值進行指定長度的遞增和遞減
append [key]方法:字符串追加方法
strlen [key]方法:獲取字符串的長度
1)hset user age 12
hset是hash集合,user是集合名字 age是字段名 12爲其值
hset user name Tom
同一集合能夠有多個字段,
2)hget user age -> 12
獲取集合中某個字段的值
3)hmset能夠進行批量存儲多個鍵值對:hmset user sex man addr beijing,也可以使用hmget進行批量獲取多個鍵值對。
4)其他命令
一樣也有hsetnx,和setnx大同小異。
hincrby和 hdecrby 集合遞增和遞減
hexists 是否存在key 若是存在返回 不存在返回0
hlen 返回hash集合裏的全部的鍵數值
hdel 刪除指定hash的field
hkeys 返回hash裏全部的字段
hvals 返回hash的全部value
hgetall 返回hash裏全部的key和value
1)lpush
從頭部加入元素(棧) 先進後出
lpush list1 "hello"
lpush list1 "world"
2)rpush
從尾部加入元素(隊列) 先進先出
rpush list2 "1"
rpush list2 "2"
3)linsert
插入元素
linsert list3 before [集合的元素] [插入的元素]
4)取值
lrange list1 0 -1 (表示從頭取到末尾)
127.0.0.1:6379> lpush list3 "one" "two" (integer) 2 127.0.0.1:6379> lrange list3 0 -1 1) "two" 2) "one" 127.0.0.1:6379> linsert list3 before "one" "three" (integer) 3 127.0.0.1:6379> lrange list3 0 -1 1) "two" 2) "three" 3) "one"
5)替換元素——lset
lset list1 0 "A" , 把第0個元素替換爲A
6)刪除元素
lrem list3 1 「two」 ,刪除一個two元素
ltrim方法: 保留指定key的值範圍內的數據
lpop方法:從list的頭部刪除元素,並返回刪除元素
rpop方法:從list的尾部刪除元素,並返回刪除元素
7)其餘命令
rpoplpush方法: 第一步從尾部刪除元素,而後第二步並從頭部加入元素
lindex方法: 返回名稱爲key的list中 index位置的元素
llen方法:返回元素的個數
存儲內容 |
集合類型(Set) |
列表類型(List) |
有序性 |
否 |
是 |
惟一性 |
是 |
否 |
1)添加、查看元素
sadd ,smembers
127.0.0.1:6379> sadd set1 aaa (integer) 1 127.0.0.1:6379> smembers set1 1) "aaa"
2)刪除元素
srem 刪除方法:srem set1 aaa //刪除aaa元素
spop隨機刪除方法:spop set1 //隨機刪除某個元素,返回刪除的key
3)集合之間的比較操做
sdiff方法: 返回倆個集合的不一樣元素(哪一個集合在前面就以哪一個集合爲標準)
sdiffstore方法: 將返回的不一樣元素存儲到另一個集合裏
127.0.0.1:6379> smembers set1 1) "bbb" 2) "aaa" 3) "ddd" 4) "ccc" 5) "eee" 127.0.0.1:6379> smembers set2 1) "eee" 2) "aaa" 3) "ff" 4) "ccc" 127.0.0.1:6379> sdiffstore set3 set1 set2 (integer) 2 127.0.0.1:6379> smembers set3 1) "bbb" 2) "ddd"
sinter方法:返回集合的交集
sinterstroe方法: 返回交集結果,存入set3中
sunion方法: 取並集
sunionstore方法:取得並集,存入set3中
smove方法: 從一個set集合移動到另外一個set集合裏
smove set1 set2 aaa //將set1中的元素aaa移動到set2中(至關於剪切複製)
scard方法: 查看集合裏元素個數
sismember方法: 判斷某元素是否爲集合中的元素 返回1表明是集合中的元素,0表明不是
srandmember方法: 隨機返回一個元素
1)添加方法——zadd
zadd zset1 1 one
向有序集合中添加一個元素,該元素若是存在,則更新順序,在重複插入的時候 會根據順序屬性更新,其中的「1」爲插入時指定的下標。
2)刪除方法
zrem 刪除名稱爲key的zset中的元素member
zremrangebyrank 刪除 1到1(只刪除索引1)
zremrangebyscore 刪除指定序號
3)zincrby 以指定值去自動遞增或者減小,用法和以前的incrby相似
4)zrangebyscore 找到指定區間範圍的數據進行返回
5)排序索引
zrank 返回排序索引 從小到大排序(升序排序以後再找索引) 注意 一個是順序號 一個是索引 zrank返回的是索引
zrevrank 返回排序索引 從大到小排序(降序排序以後再找索引)
6)zcard 返回集合裏全部元素的個數
7)zcount 返回集合中score在給定區間中的數量
8)zremrangebyrank zset [from] [to](刪除索引)
9)zremrangebyscore zset [from] [to] (刪除指定序號)