Redis命令大全+Java使用基礎教程(一)

一、下載

1.訪問redis官網:https://redis.io/

2.點擊按鈕開始下載redis最新穩定版

3.下載不下來的這裏提供一個5.0.9版本的:

鏈接:https://pan.baidu.com/s/1Z8gD6NiZfrvriRit77hjkA   提取碼:fv04

二、windows啓動

打開cmd,cd到redis所在的文件夾內,執行命令:redis-server.exe redis.windows.conf

三、Java驗證redis是否啓動成功

1.引用jar包

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.3.0</version>
</dependency>

2.java代碼

public static void main(String[] args) {
    Jedis jedis = new Jedis("127.0.0.1");
    System.out.println("服務正在運行: "+jedis.ping());
}

3.運行結果

啓動失敗:拋出redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to 127.0.0.1:6379異常

啓動成功:輸出 服務正在運行: PONG

四、字符串(string)

1.支持存儲類型

類型 取值範圍
字節串  
整數 long integer
浮點數 double

 

2.整數和浮點數支持自增和自減操作

3.命令  提示:windows系統雙擊redis-cli.exe即可測試命令

命令 描述 用例 返回 JAVA方法
SET 設置指定key的value set name zhangsan ok
String set(String key, String value)
GET 返回指定key的value get name zhangsan
String get(String key)
GETSET 返回指定key的value並賦予新value getset name lisi zhangsan
String getSet(String key, String value)
GETRANGE 返回指定key的部分字符串 getrange name 0 2 lis
String getrange(String key, long startOffset, long endOffset)
SETRANGE 設置指定key的部分字符串 getrange name 0 ll 7
Long setrange(String key, long offset, String value)
MGET 返回指定多個key的value mget name age lisi  2
List<String> mget(String... keys)
MSET 設置多個指定key的value mset name zhaowu age 20 ok
String mset(String... keysvalues)
SETEX 設置指定key的value並設置過期時間(秒) setex set 60 man ok
String setex(String key, int seconds, String value)
SETNX 當指定key不存在時纔可設置成功 setnx set name 0
Long msetnx(String... keysvalues)
STRLN 返回指定key的value長度 strln name  6
Long strlen(String key)
INCR 對指定key進行自增 incr age 21
Long incr(String key)
DECR  對指定key進行自減 decr age 20
Long decr(String key)
INCRBY 對指定key加上指定整數 incrby age 10 30
Long incrBy(String key, long increment)
DECRBY 對指定key減去指定整數 decrby age 10  20
Long decrBy(String key, long decrement)
INCRBYFLOAT 對指定key加上指定浮點數 incrbyfloat age 1.1 31.10000000000000142
Double incrByFloat(String key, double increment)
APPEND 對指定key的value追加value append name 3 7
Long append(String key, String value)

 

五、列表(list)

 

1.命令及其java方法

命令 描述 用例 返回 JAVA方法
RPUSH 將一個或者多個值插入列表右側 rpush list car1 car2 2
Long rpush(String key, String... string)
LPUSH 將一個或者多個值插入列表左側 lpush list car3 car4 4
Long lpush(String key, String... string)
RPOP 移除並返回最右側的元素 rpop list car2
String rpop(String key)
LPOP 移除並返回最左側的元素 lpop list car4
String lpop(String key)
LINDEX 返回列表中指定位置的元素 lindex list 1 car1
String lindex(String key, long index)
LTRIM 將指定一段元素保留,其餘刪除 ltrim list 0 0 ok
String ltrim(String key, long start, long stop)
BLPOP 從第一個非空列表中彈出位於最左端的元素或者在N秒內阻塞並等待可彈出元素 blpop list list1 2 list car3
List<String> blpop(int timeout, String... keys)
BRPOP 從第一個非空中彈出最右側的元素或者在N秒內阻塞並等待可彈出元素 brpop list list1 2 list cc2
List<String> brpop(int timeout, String... keys)
RPOPLPUSH 從第一個列表中彈出最右側的元素然後插入第二個列表的最左側並返回元素 rpoplpush list list1  cc1
String rpoplpush(String srckey, String dstkey)
BRPOPLPUSH 從第一個列表彈出最右側的元素插入第二個列表的最左端並返回元素,如果第一個列表爲空那麼阻塞N秒等待元素的出現 brpoplpush list list1 3 (nil)
String brpoplpush(String source, String destination, int timeout)

 

六、集合(set)

 

1.命令及其java方法

命令 描述 用例 返回 JAVA方法
SADD 將一個或多個元素添加到集合裏面,並返回添加成功的數量 sadd set cat1 cat2 2
Long sadd(String key, String... member)
SREM 從集合移除一個或多個元素,並返回移除的數量 srem set cat1  1
Long srem(String key, String... member)
SISMEMBER 檢查元素是否存在集合中,並返回存在的數量 sismember set cat2 1
Boolean sismember(String key, String member)
SRANDMEMBER 從集合中隨機返回一個或多個元素,正數時不重複,負數可能重複 srandmember set 1 cat2
String srandmember(String key);
List<String> srandmember(String key, int count)
SPOP 隨機移除集合中的一個元素,並返回元素 spop set cat2
String spop(String key);
Set<String> spop(String key, long count)
SMOVE 隨機移除第一個集合的元素並插入第二個元素中,成功返回1 smove set set1 1 0
Long smove(String srckey, String dstkey, String member)
SDIFF 返回存在於第一個集合但不存在於其他集合中 sdiff set set1 cat1
Set<String> sdiff(String... keys)
SDIFFSTORE 將第一個集合存在但其他不存在的元素存儲到第一個集合中 sdiff set1 set  1
Long sdiffstore(String dstkey, String... keys)
SINTER 返回多個集合同時存在的元素 sinter set set1 cat1
Set<String> sinter(String... keys)
SUNION 返回多個集合所有元素 sunion set set1 cat1
Set<String> sunion(String... keys)
SUNIONSTORE 將所有集合的元素存儲到第一個集合中 sunionstore set set1 0
Long sunionstore(String dstkey, String... keys)

七、散列(Hash)

命令 描述 用例 返回 JAVA方法
HMGET 從散列裏面獲取一個貨多個鍵的值 hmget hash name age zhangsan 22
List<String> hmget(String key, String... fields)
HMSET 爲散列插入一個貨多個鍵設置值 hmset hash name zhangsan age 22 ok
String hmset(String key, Map<String, String> hash)
HDEL 刪除一個貨多個鍵返回刪除成功數量 hdel hash name 1
Long hdel(String key, String... field)
HLEN 返回散列包含鍵值的數量 hlen hash 1
Long hlen(String key)
HEXISTS 檢查鍵是否存在散列中 hexists hash age 1
Boolean hexists(String key, String field)
HKEYS 獲取散列所有鍵 hkeys hash  age
Set<String> hkeys(String key)
HVALS 獲取所有值 hvals hash 22
List<String> hvals(String key)
HGETALL 獲取所有鍵值 hgetall hash

age 22

Map<String, String> hgetAll(String key)
HINCRBY 將鍵的值加上整數 hincrby hash age 1 23
Long hincrBy(String key, String field, long value)
HINCRBYFLOAT 將鍵的值加上浮點數 hincrbyfloat age 2.1 25.10000000000000142
Double hincrByFloat(String key, String field, double value)

八、有序集合(sorted set)

 

命令 描述 用例 返回 JAVA方法
ZADD 將帶有給定位置的成員添加到有序集合裏 zadd zset 1 b 1
Long zadd(String key, double score, String member)
ZREM 從有序集合中移除給定位置的元素 zrem zset 1 0
Long zrem(String key, String... members)
ZCRAD 返回有序集合的數量 zcrad zset 1
Long zcard(String key)
ZINCRBY 將某元素排序加N zincrby zset 1 b 2
Double zincrby(String key, double increment, String member)
ZCOUNT 獲取某範圍內的成員數量 zcount zset 1 2 1
Long zcount(String key, double min, double max)
ZRANK 返回成員的排名 zrank zset b 0
Long zrank(String key, String member)
ZSCORE 返回成員的分值 zscore zset b 2
Double zscore(String key, String member)
ZRANGE 返回有序集合排名範圍內成員 zrange zset 0 -1 b
Set<String> zrange(String key, long start, long stop)
ZREVRANK 返回有序集合成員所在的位置,按從大到小排序 zrevrank zset b 1
Long zrevrank(String key, String member)
ZREVRANGE 返回有序集合給定排名範圍內成員,按從大到小排序 zrevrange zset 0 -1 b
Set<String> zrevrange(String key, long start, long stop)
ZREVRANGEBYSCORE 獲取有序集合分值範圍內所有成員,按從大到小排序 zrevrangebyscore zset 0 -1 b
Set<String> zrevrangeByScore(String key, double max, double min)
ZREMRANGEBYRANK 移除有序集合中排名範圍內的元素 zremrangebyrank zset 0 -1  1
Long zremrangeByRank(String key, long start, long stop)
ZREMRANGEBYSCORE 移除有序集合分值在範圍內的元素 zremrangebyscore zset 0 -1 1
Long zremrangeByScore(String key, double min, double max)
ZINTERSTORE 對給定有序集合執行交集運算 zinterstore zset 2 zset1 zset2 0
Long zinterstore(String dstkey, String... sets)
ZUNIONSTORE d對給定有序集合執行並集運算 zunionstore zset 2 zset1 zset2 1
Long zunionstore(String dstkey, String... sets)

九、發佈與訂閱(pub/sub)

 

命令 描述 用例
SUBSCRIBE 訂閱給定的一個或多個頻道 subscribe channel [channel ...]
UNSUBSCRIBE r退訂給定一個頻道,如果未指定退訂全部 unsubscribe [channel [channel ...]]
PUBLISH 向指定頻道發送消息 publish channel message
PSUBSCRIBE 訂閱與給定模式相匹配的所有頻道 psubscribe pattern [pattern ...]
PUNSUBSCRIBE 退訂給定的模式,如果沒有給定模式那麼退訂所有模式 punsubscribe [pattern [pattern ...]]

java代碼推薦閱讀:https://www.cnblogs.com/JerryMouseLi/p/11012839.html

如有錯漏,請各位大佬指正。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章