Redis簡單命令(部分示例代碼)

1、redis文件夾下的可執行文件(文章尾部有示例代碼)

可執行文件html

做用redis

redis-server數據庫

啓動redis服務器

redis-cliapp

redis命令行工具dom

redis-benchmark異步

基準測試工具工具

redis-check-aof測試

AOP持久化文件檢測工具和修復工具ui

redis-check-dump

RDB持久化文件檢測工具和修復工具

redis-sentinel

啓動redis-sentinel

 

2、可使用兩種方式連redis服務器

  • 第一種:交互式方式
  • $redis-cli -h 127.0.0.1 -p 6379
  • set hello world
  • get hello
  • 第二種:命令方式
  • get hello

 

3、經常使用命令

一、鏈接只剩相關的命令

  • 默認直接鏈接 遠程鏈接 -h 192.168.1.20 -p 6379
  • ping:測試鏈接是否存活,若是正常會返回pong
  • echo:打印
  • select:切換到指定的數據庫,數據庫存索引號index用數字值指定,以0做爲起始索引值
  • quit:關閉鏈接
  • auth:簡單密碼認證

二、服務器端相關命令

  • time:返回當前服務器時間
  • client list: 返回全部鏈接到服務器的客戶端信息和統計數據  參見http://redisdoc.com/server/client_list.html
  • client kill ip:port:關閉地址爲 ip:port 的客戶端
  • save:將數據同步保存到磁盤
  • bgsave:將數據異步保存到磁盤
  • lastsave:返回上次成功將數據保存到磁盤的Unix時戳
  • shundown:將數據同步保存到磁盤,而後關閉服務
  • info:提供服務器的信息和統計
  • config resetstat:重置info命令中的某些統計數據
  • config get:獲取配置文件信息
  • config set:動態地調整 Redis 服務器的配置(configuration)而無須重啓,能夠修改的配置參數可使用命令 CONFIG GET * 來列出
  • config rewrite:Redis 服務器時所指定的 redis.conf 文件進行改寫
  • monitor:實時轉儲收到的請求   
  • slaveof:改變複製策略設置

三、發佈訂閱相關命令

  • psubscribe:訂閱一個或多個符合給定模式的頻道 例如psubscribe news.* tweet.*
  • publish:將信息 message 發送到指定的頻道 channel 例如publish msg "good morning"
  • pubsub channels:列出當前的活躍頻道 例如PUBSUB CHANNELS news.i*
  • pubsub numsub:返回給定頻道的訂閱者數量 例如PUBSUB NUMSUB news.it news.internet news.sport news.music
  • pubsub numpat:返回客戶端訂閱的全部模式的數量總和
  • punsubscribe:指示客戶端退訂全部給定模式。
  • subscribe:訂閱給定的一個或多個頻道的信息。例如 subscribe msg chat_room
  • unsubscribe:指示客戶端退訂給定的頻道。

四、對key操做的命令

  • exists(key):確認一個key是否存在
  • del(key):刪除一個key
  • type(key):返回值的類型
  • keys(pattern):返回知足給定pattern的全部key
  • randomkey:隨機返回key空間的一個
  • keyrename(oldname, newname):重命名key
  • dbsize:返回當前數據庫中key的數目
  • expire:設定一個key的活動時間(s)
  • ttl:得到一個key的活動時間
  • move(key, dbindex):移動當前數據庫中的key到dbindex數據庫
  • flushdb:刪除當前選擇數據庫中的全部key
  • flushall:刪除全部數據庫中的全部key

五、對String操做的命令

  • set(key, value):給數據庫中名稱爲key的string賦予值value
  • get(key):返回數據庫中名稱爲key的string的value
  • getset(key, value):給名稱爲key的string賦予上一次的value
  • mget(key1, key2,…, key N):返回庫中多個string的value
  • setnx(key, value):添加string,名稱爲key,值爲value
  • setex(key, time, value):向庫中添加string,設定過時時間time
  • mset(key N, value N):批量設置多個string的值
  • msetnx(key N, value N):若是全部名稱爲key i的string都不存在
  • incr(key):名稱爲key的string增1操做
  • incrby(key, integer):名稱爲key的string增長integer
  • decr(key):名稱爲key的string減1操做
  • decrby(key, integer):名稱爲key的string減小integer
  • append(key, value):名稱爲key的string的值附加value
  • substr(key, start, end):返回名稱爲key的string的value的子串

六、對list操做的命令

  • rpush(key, value):在名稱爲key的list尾添加一個值爲value的元素
  • lpush(key, value):在名稱爲key的list頭添加一個值爲value的 元素
  • llen(key):返回名稱爲key的list的長度
  • lrange(key, start, end):返回名稱爲key的list中start至end之間的元素
  • ltrim(key, start, end):截取名稱爲key的list
  • lindex(key, index):返回名稱爲key的list中index位置的元素
  • lset(key, index, value):給名稱爲key的list中index位置的元素賦值
  • lrem(key, count, value):刪除count個key的list中值爲value的元素
  • lpop(key):返回並刪除名稱爲key的list中的首元素
  • rpop(key):返回並刪除名稱爲key的list中的尾元素
  • blpop(key1, key2,… key N, timeout):lpop命令的block版本。
  • brpop(key1, key2,… key N, timeout):rpop的block版本。
  • rpoplpush(srckey, dstkey):返回並刪除名稱爲srckey的list的尾元素,並將該元素添加到名稱爲dstkey的list的頭部

七、對Set操做的命令

  • sadd(key, member):向名稱爲key的set中添加元素member
  • srem(key, member) :刪除名稱爲key的set中的元素member
  • spop(key) :隨機返回並刪除名稱爲key的set中一個元素
  • smove(srckey, dstkey, member) :移到集合元素
  • scard(key) :返回名稱爲key的set的基數
  • sismember(key, member) :member是不是名稱爲key的set的元素
  • sinter(key1, key2,…key N) :求交集
  • sinterstore(dstkey, (keys)) :求交集並將交集保存到dstkey的集合
  • sunion(key1, (keys)) :求並集
  • sunionstore(dstkey, (keys)) :求並集並將並集保存到dstkey的集合
  • sdiff(key1, (keys)) :求差集
  • sdiffstore(dstkey, (keys)) :求差集並將差集保存到dstkey的集合
  • smembers(key) :返回名稱爲key的set的全部元素
  • srandmember(key) :隨機返回名稱爲key的set的一個元素

八、對Hash操做的命令

  • hset(key, field, value):向名稱爲key的hash中添加元素field
  • hget(key, field):返回名稱爲key的hash中field對應的value
  • hmget(key, (fields)):返回名稱爲key的hash中field i對應的value
  • hmset(key, (fields)):向名稱爲key的hash中添加元素field
  • hincrby(key, field, integer):將名稱爲key的hash中field的value增長integer
  • hexists(key, field):名稱爲key的hash中是否存在鍵爲field的域
  • hdel(key, field):刪除名稱爲key的hash中鍵爲field的域
  • hlen(key):返回名稱爲key的hash中元素個數
  • hkeys(key):返回名稱爲key的hash中全部鍵
  • hvals(key):返回名稱爲key的hash中全部鍵對應的value
  • hgetall(key):返回名稱爲key的hash中全部的鍵(field)及其對應的value

 4、示例代碼(部分方法的示例,後續會補全)

public class MyRedis {
    // 鏈接對象 localhost 爲本機 若是是遠程鏈接換位IP 6379是端口號
    private Jedis jedis = new Jedis("localhost", 6379);

    /**
     * 測試鏈接
     */
    @Test
    public void myTest1() {
        System.out.println(jedis.ping());
        jedis.set("hello", "第一個string");
        System.out.println(jedis.get("hello"));
        jedis.close();
    }

    /**
     * 操做String
     */

    @Test
    public void test_String() {
        jedis.flushAll();
        // 獲取Jedis對象
        // 添加一條數據
        jedis.set("name", "王世磊");
        // 根據key找到對應的value的值
        System.out.println(jedis.get("name"));
        // 屢次對key進行設置值,則最後一次會覆蓋以前的值(沒有相似update)
        // 字符串拼接
        jedis.append("name", "很帥");
        System.out.println(jedis.get("name"));
        // 刪除某個鍵
        jedis.set("p3", "4");
        jedis.del("p3");
        // 同時設置多個鍵值對:獲取值的方式同上
        jedis.mset("m1", "1", "m2", "2", "m3", "3", "m4", "4", "m5", "5", "m6", "6", "m7", "7", "m8", "8");
        System.out.println(jedis.mget("m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8").toString());
        // 假如值裏面有數字(字符串形式),能夠進行+1的操做(incr)
        jedis.set("n1", "1");
        jedis.incr("n1");
        System.out.println(jedis.get("n1"));
        // 進行-1的操做(decr)
        jedis.decr("n1");
        System.out.println(jedis.get("n1"));
        // 某個值增長多少(incrBy)
        jedis.set("p2", "4");
        jedis.incrBy("p2", 5);
        System.out.println(jedis.get("p2"));
        // 某個值減小多少(decrBy)
        jedis.incrBy("p2", 2);
        System.out.println(jedis.get("p2"));
        // 判斷是否存在某個key(exists)
        System.out.println(jedis.exists("a1"));
        System.out.println(jedis.exists("p1"));
        // 設置值的時間:存在5s(setex)
        jedis.setex("s1", 5, "4");
        // 查詢值的存活時間:當 key不存在時,返回 -2,當key存在但沒有設置剩餘生存時間時,返回-1,
        jedis.setex("s2", 200, "4");
        jedis.set("s3", "4");
        // 當key存在且設定有存活時間 以秒爲單位,返回key的剩餘生存時間(ttl)
        System.out.println(jedis.ttl("s2"));
        // 當key不存在
        System.out.println(jedis.ttl("s100"));
        // 當key存在 可是沒有設定存活時間
        System.out.println(jedis.ttl("s3"));
        // 去掉key的時間設置:再也不有失效時間(persist)
        jedis.persist("s2");
        System.out.println(jedis.ttl("s2"));
        // 關閉鏈接
        jedis.close();
    }

    /**
     * 操做List
     */
    @Test
    public void test_List() {
        jedis.flushAll();
        // 保存數據:lpush-->left push
        jedis.lpush("l1", "數據1", "數據2", "數據3");
        // 查詢:第一個值是key,第二個值表示從0開始,第三個值表示結束(-1表示取所有)(lrange)
        System.out.println(jedis.lrange("l1", 0, -1));
        // userListA當中的值排列狀況:["Kevin Durant","stephen curry","kobe bryant","king james"]
        // 保存數據:rpush-->right push
        jedis.rpush("userListA", "Kevin Durant", "stephen curry", "kobe bryant", "king james");
        // 查詢:第一個值是key,第二個值表示從0開始,第三個值表示結束(-1表示取所有)
        System.out.println(jedis.lrange("userListA", 0, -1));
        /*
         * userListB當中值排列狀況:["Kevin Durant","stephen curry","kobe bryant","king
         * james","Wilt Chamberlain","John Smith","Karl Malone"]
         */
        jedis.rpush("userListB", "Kevin Durant", "stephen curry", "kobe bryant", "king james", "Wilt Chamberlain",
                "John Smith", "Karl Malone");
        // 移除並返回列表key的頭元素:lpop-->left pop
        System.out.println(jedis.lpop("userListB"));
        // 移除並返回列表key的尾元素:rpop-->right pop
        System.out.println(jedis.rpop("userListB"));
        // 刪除key
        jedis.del("l1");
        System.out.println(jedis.get("l1"));
        // 查詢特定位置的值:idnex從0開始(lindex)
        System.out.println(jedis.lindex("userListA", 1));
        // 對list進行裁剪:只保留下標1-3的值,其餘的所有刪除,下標從0開始(ltrim)
        System.out.println(jedis.ltrim("userListA", 1, 3));
        System.out.println(jedis.lrange("userListA", 0, -1));
        // 根據參數count的值,移除列表中與參數value相等的元素。
        jedis.rpush("list1", "1", "1", "1", "1", "1", "2", "3", "4", "5", "6", "7", "8");
        System.out.println(jedis.lrange("list1", 0, -1));
        jedis.lrem("list1", 3, "1");
        System.out.println(jedis.lrange("list1", 0, -1));
        // lrem(key, count, value):刪除count個key的list中值爲value的元素
        jedis.rpush("list2", "1", "1", "3", "1", "1", "2", "3", "2", "3", "3", "4", "3", "5", "3", "1", "4", "2", "6",
                "7", "5");
        // lpop(key):返回並刪除名稱爲key的list中的首元素
        jedis.lpop("list2");
        System.out.println(jedis.lrange("list2", 0, -1));
        // rpop(key):返回並刪除名稱爲key的list中的尾元素
        jedis.rpop("list2");
        System.out.println(jedis.lrange("list2", 0, -1));
        // 從users的右邊彈出一個元素,把該元素左插入到players列表當中(rpoplpush)
        jedis.rpoplpush("list2", "list2");
        System.out.println(jedis.lrange("list2", 0, -1));
    }}
相關文章
相關標籤/搜索