1、String類型:存儲的數據都是string類型的
1、set name fangzy ?//設置值 ? name=fangzy ? ? key為name ? ?value為fangzy
2、get name ? ?//獲取key為name的值 ?
3、mset name fangzy age 20 ?//設置多個值 ? name=fangzy ? age=20?
4、mget name age ? //get獲取name和age的值
5、getset name fangzy0723 ? //先獲取name的值,再給name設置新值fangzy0723
6、del name ? //刪除key為name的值
7、incr age ? //age的值每次自增1 ? ? ? ?( incr:值為數則自增 ? ?字符串報錯 ? ?值不存在先付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的數據庫 ? 默認使用的是下標為0的 ? ?redis默認是16個數據庫下標從0-15
2、Hash類型(散列類型):存儲的數據是map(也就是value是map類型),map中字段的值必須是string類型
1、hset ?user ?name ?fangzy ? ?//設置值 ? ?key:user ? ?value是個數組 ? 字段名:name ? 字段值:fangzy ? ? ? ?
2、hget user name ? ?//獲取key為user ?字段名為name的值 ??
3、hmset ?user name fangzy age 20 // 給user設置多個值
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:使用數組存儲數據,查詢快,增刪慢。LinkedList:使用雙向鏈表存儲數據,查詢慢,增刪快。redis采用LinkedList雙向鏈表存儲數據,向兩頭插值
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的元素個數
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 //設置指定下標的值 ? ? ?給asd列表中下標為0的元素重新賦值為a
4、set(集合)類型:無序不可重復
1、sadd set1 1 2 3 4 //給set1集合設置元素
示例: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集合中的元素個數
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集合的區別,每個元素多一個score ? 根據這個分數排序,分數值越大排名越靠前
1、zadd k score1 v1 score2 v2 ? ? //向有序集合添加元素 ? score是分數,排名用的,數值越大該元素排名越靠前
示例:zadd zset1 10 a ?9 b 11 c ? ??
插入之后zset的集合順序是:c a b
2、zscore zset1 a ? //獲取zset1集合a元素的分數
3、zrem zset1 a ? ? //刪除zset1集合中元素
4、zrange zset1 0 2 ? ?//獲取zset1集合下標從0-2的元素 ? (按分數從小到大)
5、zrevrange zset1? 0 2? //獲取zset1集合下標從0-2的元素? (按分數從大到小)
6、zrange zset1? 0 2 withscores ? ?//獲取zset1集合下標從0-2的元素并顯示分數
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 ? //獲取銷量前十的商品