1汇歹、String類型:存儲的數(shù)據(jù)都是string類型的
1、set name fangzy ?//設(shè)置值 ? name=fangzy ? ? key為name ? ?value為fangzy
2偿凭、get name ? ?//獲取key為name的值 ?
3产弹、mset name fangzy age 20 ?//設(shè)置多個值 ? name=fangzy ? age=20?
4、mget name age ? //get獲取name和age的值
5弯囊、getset name fangzy0723 ? //先獲取name的值痰哨,再給name設(shè)置新值fangzy0723
6、del name ? //刪除key為name的值
7匾嘱、incr age ? //age的值每次自增1 ? ? ? ?( incr:值為數(shù)則自增 ? ?字符串報錯 ? ?值不存在先付0再自增)
8斤斧、incrby age 2 ? ? //age的值每次自增2
9、decr age ? //age值每次自減1
10奄毡、decrby age 2 ?//age的值每次自減2
11折欠、append name 你好 ? //name的值后面追加你好
12、strlen name ?//獲取key為name的值的長度吼过,不存在返回0
13、select 1 ?//選擇使用下標為1的數(shù)據(jù)庫 ? 默認使用的是下標為0的 ? ?redis默認是16個數(shù)據(jù)庫下標從0-15
2咪奖、Hash類型(散列類型):存儲的數(shù)據(jù)是map(也就是value是map類型)盗忱,map中字段的值必須是string類型
1、hset ?user ?name ?fangzy ? ?//設(shè)置值 ? ?key:user ? ?value是個數(shù)組 ? 字段名:name ? 字段值:fangzy ? ? ? ?
2羊赵、hget user name ? ?//獲取key為user ?字段名為name的值 ??
3趟佃、hmset ?user name fangzy age 20 // 給user設(shè)置多個值
4、hmget user name age ?//獲取多個值
5昧捷、hgetall user ?//獲取key為user下的所有字段名闲昭、字段值
6、hdel user age //刪除key為user的age的值
7靡挥、hincrby user age 2 ?//key為user的age的字段值每次自增2
8序矩、hexists user age ?//判斷user中是否含有age字段 ? ?1:有 ?0:沒有
9、hkeys user //獲取user中所有的字段名
10跋破、hvals user ?//獲取user中所有的字段值
11簸淀、hlen user ?//獲取user中的字段的長度
3瓶蝴、List類型(列表類型) ? ?ArrayList:使用數(shù)組存儲數(shù)據(jù),查詢快租幕,增刪慢舷手。LinkedList:使用雙向鏈表存儲數(shù)據(jù),查詢慢劲绪,增刪快男窟。redis采用LinkedList雙向鏈表存儲數(shù)據(jù),向兩頭插值
1贾富、lpush list_1 1 2 3 4 //從左邊向list_1插值 ? 插入之后的值的順序是 ?4 3 2 1
2蝎宇、rpush list1 1 2 3 4 ?//從右邊向list_1插值 ?插入之后值的順序是1 2 3 4?
示例:lpush ? asd ? 1 2 3 4;
? ? ? ? ? ?rpush ?asd ? a b c ;
上面命令之后asd列表中的元素為4 3 2 1 a b c
3祷安、lrange asd 0 2 ? //獲取列表asd中下標從0到2的片段 ? ?列表的下邊是從0 開始代表第一個 ? -1代表最后一個
4姥芥、lpop asd ? //從左邊彈出asd列表中的第一個元素,相當于刪除左邊第一個元素
5汇鞭、rpop asd ?//從右邊彈出asd列表中的第一個元素凉唐,相當于刪除右邊第一個元素
6、 llen asd ?//獲取列表asd的元素個數(shù)
7霍骄、lrem asd count a ? //刪除asd列表中的a元素台囱,count>0 ? 從左邊刪除第一個a ? ?count<0 ?從右邊刪除第一個a ? count=0 ? 刪除所有的a元素
8、lindex asd 0 ?//獲取指定下標的元素值 ? ? 獲取asd下標為0的元素
9读整、lset asd 0 a //設(shè)置指定下標的值 ? ? ?給asd列表中下標為0的元素重新賦值為a
4簿训、set(集合)類型:無序不可重復
1、sadd set1 1 2 3 4 //給set1集合設(shè)置元素
示例:sadd set1 ?1 2 3 4 2 3 1 ? //集合中有1 2 3 4 四個元素(順序不確定)
2米间、srem set1 1 2 ?//刪除set1集合中值為1和2的元素
3强品、smembers set1 ? //獲取set1集合中所有的元素
4、sismember ?set1 1 //集合set1中是否存在1元素 ? ?返回值是1:存在 ? 0:不存在
5屈糊、scard set1 //獲取set1集合中的元素個數(shù)
6的榛、spop set1 ?//從集合中彈出一個元素,因為集合石無須的逻锐,所以是隨機彈出一個元素
示例: sadd k1 ?1 2 3夫晌;
? ? ? ? ? ?sadd k2 ?2 3 4 ;
sdiff k1 k2 //獲取k1中有k2中沒有的元素(“1”) ?求差集
sinter k1 k2 //獲取k1和k2相同的元素 (“2”昧诱,“3”) 求交集
sunion k1 k2 ? //獲取k1晓淀、k2包含的所有的元素 (“1”,“2”盏档,“3”凶掰,“4”) ?求并集
5、zset 有序集合 ?跟set集合的區(qū)別,每個元素多一個score ? 根據(jù)這個分數(shù)排序锄俄,分數(shù)值越大排名越靠前
1局劲、zadd k score1 v1 score2 v2 ? ? //向有序集合添加元素 ? score是分數(shù),排名用的奶赠,數(shù)值越大該元素排名越靠前
示例:zadd zset1 10 a ?9 b 11 c ? ??
插入之后zset的集合順序是:c a b
2鱼填、zscore zset1 a ? //獲取zset1集合a元素的分數(shù)
3、zrem zset1 a ? ? //刪除zset1集合中元素
4毅戈、zrange zset1 0 2 ? ?//獲取zset1集合下標從0-2的元素 ? (按分數(shù)從小到大)
5苹丸、zrevrange zset1? 0 2? //獲取zset1集合下標從0-2的元素? (按分數(shù)從大到小)
6苇经、zrange zset1? 0 2 withscores ? ?//獲取zset1集合下標從0-2的元素并顯示分數(shù)
7赘理、zrank zset1 a ? //獲取a在zset1集合中的排名(從小到大的排名)
8、zrevrank zset1 a ? //獲取a在zset1集合中的排名(從大到小的排名)
示例:
zadd goods 9 1002 10 1003? //插入商品編號1002? 銷量為9? 扇单,1003銷量為10
zincrby goods 1 1002 ? //商品1002的銷量加1
zrverange goods 0 9 withscores ? //獲取銷量前十的商品