redis命令

1.安裝篇

a) Window版本64位下載地址

https://github.com/microsoftarchive/redis/releases

下載完成後

Windows 解壓 redis壓縮包

啓動redis-server.exe

b)  Linux版本下載

https://redis.io/download

下載完成之後

Linux 解壓 tar-zxvf  redis 壓縮包

啓動redis-server.exe

2.安裝redis集羣篇

暫時不考慮

3.命令篇

遠程服務執行命令

語法:redis-cli -h host -p port -a password

          host:ip

          port:端口

          password: 密碼

示例:redis-cli -h 127.0.0.1 -p 6379 -a "wll123"

redis 鍵key

redistext:0>set run redis

鍵爲run  值爲redis   set語法

給鍵一個redis的值

redistext:0>del run

刪除名爲run的鍵key

redistext:0>dump run

序列化給定的key並返回被序列化的值

redistext:0>exists key

返回1爲存在返回0不存在

redistext:0>expire run 10

設置key的過期時間,10的單位爲秒

redistext:0>pexpire run 1000

設置key的過期時間以毫秒計

redistext:0>move wll 1

移動當前的key到指定的db中

redistext:0>select 1

切換庫 

redistext:1>persist wll

移除當前ley的過期時間

redistext:1>randomkey

隨機返回當前庫的key

redistext:1>rename wll gyx

修改當前的key名字  庫中若是有  替換庫中的key

redistext:1>renamenx wll gyx

修改當前key的名字 庫中沒有時纔會修改成功

redistext:1>type wll

返回key的存儲類型

4.類型篇

  4.1Redis字符串(String)

redistext:1>set wll 2365900668

添加key爲wll 值爲2365900668

redistext:1>get wll

獲取key爲wll的val值

redistext:1>getrange wll 2 5

獲取wll的指定字符  2 字符開始   5字符結束

redistext:1>getset wll 93075627

給定key爲wll的一個新的值  返回舊的值

redistext:1>getbit wll 11

例如java char值得取值範圍 如何把a變成b  修改char值

redistext:1>mget wll gyx

獲取所有給定的key

redistext:1>setnx job kil

只有設置的key值不存在時纔會爲key設置指定的值   (set區別)

redistext:1>strlen wll

返回key的長度

redistext:1>mset key1 wll key2 gyx

設置一個或者多個key-val對

redistext:1>append wll 111

APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾 (值是字符串)

  4.2Redis哈希(hash)

Redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。

Redis 中每個 hash 可以存儲 2的32次方- 1 鍵值對(40多億)。

命令:

redistext:1>hmset run wll "瞬發" gyx "mhg"

同時將多個field-value(域-值)對設置到哈希表的key中 key爲run  wll gyx 域-值 redistext:1>hmget run wll gyx

獲取 run中的wll gyx域中的值

redistext:1>hdel run wll

刪除一個或者多個hash表字段

redistext:1>hexists run gyx

查看hash表key中,指定的字段是否存在

redistext:0>hset site redis redis.com

添加site hash表中添加key爲redis val爲redis.com 

redistext:0>hget site redis

獲取 site hash表中key爲redis的value值

redistext:0>hkeys site

獲取所有hash表中的所有字段

redistext:0>hlen site

獲取hash表字段的數量

redistext:0>hvals site

獲取hash表中所有的值

  4.3Redis列表(list)、

Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。

redistext:0>blpop wll 10

移出並獲取列表的第一個元素,如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。

redistext:0>brpop wll 10

移出並獲取列表的最後一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。

redistext:0>lindex wll 0

通過索引獲取列表元素

redistext:0>linsert wll before "age" "pipi"

命令用於在列表的元素前或者後插入元素。當指定元素不存在於列表中時,不執行任何操作。

redistext:0>llen wll

獲取列表的長度

redistext:0>lpop wll

移除並獲取列表的第一個元素

redistext:0>lpush wll ju ku

將一個或多個值插入到列表頭部。如果 key不存在,一個空列表會被創建並執行 LPUSH操作。當key存在但不是列表類型時,返回一個錯誤。

redistext:0>lrem wll -4 aa

根據參數 COUNT 的值,移除列表中與參數 VALUE 相等的元素。

    count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數量爲 COUNT 。

    count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數量爲 COUNT 的絕對值。

    count = 0 : 移除表中所有與 VALUE 相等的值。

 

redistext:0>lpushx wll jui

將一個值插入到已存在的列表頭部

redistext:0>lset wll 0 kij

向列表的指定位置添加值

redistext:0>rpush wll ok ok

列表添加一個或者多個值與lpush區別 lpush添加頭部

4.4redis集合(set)

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重複的數據。

Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。

集合中最大的成員數爲 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

命令:

redistext:0>sadd buba wll

向集合中添加一個或者多個成員

redistext:0>smembers buba

查看集合的成員

redistext:0>scard buba

獲取集合的成員數

redistext:0>sdiff key1 key2

返回給定所有集合的差集

redistext:0>sinter key1 key2

返回交集數據

redistext:0>sismember key1 a

判斷該成員是不是集合中的成員 是返回1

redistext:0>smembers key1

返回該集合中的所有成員

redistext:0>spop key1

移除並返回集合中的隨機元素

redistext:0>srandmember key1

返回集合中一個隨機元素

redistext:0>sunion key1 key2

返回給定集合的並集

SUNIONSTORE destination key1 [key2] 

所有給定集合的並集存儲在 destination 集合中

  4.5有序集合(sorted set)

Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重複的成員。

不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。

有序集合的成員是唯一的,但分數(score)卻可以重複。

集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

命令:

zadd  添加元素

瞭解

5.redis數據備份和恢復

備份數據

Redis中save命令用於創建當前數據庫的備份

語法:redistext:0>save 

恢復數據

如果需要恢復數據,只需將備份文件(dump.rdb) 移動到 redis 安裝目錄並啓動服務即可。獲取redis目錄可以使用CONFIG命令

redis 127.0.0.1:6379> CONFIG GET dir

1) "dir"

2) "/usr/local/redis/bin"

 

5.Redis安全

我們可以通過redis的配置文件設置密碼參數這樣客戶端連接到redis服務就需要密碼驗證這樣就可以使redis服務更加安全

查看是否設置密碼

127.0.0.1:6379> CONFIG get requirepass

1) "requirepass"

2) ""

沒有設置密碼

Redis 密碼runoob

 

Java示例

import redis.clients.jedis.Jedis;

 

public class RedisJava {

    public static void main(String[] args) {

        //連接本地的 Redis 服務

        Jedis jedis = new Jedis("localhost");

        System.out.println("連接成功");

        //查看服務是否運行

        System.out.println("服務正在運行: "+jedis.ping());

    }

}

 

 

 

import redis.clients.jedis.Jedis;

 

public class RedisStringJava {

    public static void main(String[] args) {

        //連接本地的 Redis 服務

        Jedis jedis = new Jedis("localhost");

        System.out.println("連接成功");

        //設置 redis 字符串數據

        jedis.set("runoobkey", "www.runoob.com");

        // 獲取存儲的數據並輸出

        System.out.println("redis 存儲的字符串爲: "+ jedis.get("runoobkey"));

    }

}

 

 

import java.util.List;

import redis.clients.jedis.Jedis;

 

public class RedisListJava {

    public static void main(String[] args) {

        //連接本地的 Redis 服務

        Jedis jedis = new Jedis("localhost");

        System.out.println("連接成功");

        //存儲數據到列表中

        jedis.lpush("site-list", "Runoob");

        jedis.lpush("site-list", "Google");

        jedis.lpush("site-list", "Taobao");

        // 獲取存儲的數據並輸出

        List<String> list = jedis.lrange("site-list", 0 ,2);

        for(int i=0; i<list.size(); i++) {

            System.out.println("列表項爲: "+list.get(i));

        }

    }

}

 

 

import java.util.Iterator;

import java.util.Set;

import redis.clients.jedis.Jedis;

 

public class RedisKeyJava {

    public static void main(String[] args) {

        //連接本地的 Redis 服務

        Jedis jedis = new Jedis("localhost");

        System.out.println("連接成功");

 

        // 獲取數據並輸出

        Set<String> keys = jedis.keys("*"); 

        Iterator<String> it=keys.iterator() ;   

        while(it.hasNext()){   

            String key = it.next();   

            System.out.println(key);   

        }

    }

}   

 

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