Redis客戶端的基本使用和在java中使用

Redis 使用

安裝

直接下載下來解壓

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

文件夾中的文件說明

在這裏插入圖片描述

啓動Redis服務

帶配置文件啓動

reids-server.exe redis.windows.conf

連接到redis進行操作

cmd>{%redis%}/redis-cli -h ip地址 -p 端口號

ip 默認爲本地 -p 默認6379

cmd>{%redis%}/redis-cli

Redis的使用

String操作(重要)

設置值和獲取值

set key value

get key

同時設置一個或多個 key-value 對

mset

返回所有(一個或多個)給定 key 的值

mget

在這裏插入圖片描述

將 key 中儲存的數字值增1(key不存在,則初始化爲0,再加1)

incr key

將 key 中儲存的數字值減1(key不存在,則初始化爲0,再減1)

decr key

自定義自增數量和自減數目

incrBy / decrBy

在這裏插入圖片描述

key操作(重要)

獲取所有key列表

keys *

刪除key

del key

設置key的過期時間(xx秒後過期)

expire key second

查看key的過期時間

ttl key

清空整個redis服務器數據,所有的數據庫全部清空

flushall

清除當前庫,redis中默認有16個數據庫,名稱分別爲0,1,2…15

在這裏插入圖片描述

list操作(重要)

list集合可以看成是一個左右排列的隊列(列表)

將一個或多個值 value 插入到列表 key 的表頭(最左邊/最右邊)

lpush key value / rpush key value

移除並返回列表 key 的頭(最左邊/最右邊)元素

lpop key / rpop key

返回列表 key 中指定區間內的元素,查詢所有的stop爲-1即可

lrange key start stop

根據count值移除列表key中與參數 value 相等的元素 count > 0 : 從表頭開始向表尾搜索,移除與 value 相等的元素,數量爲 count 。count < 0 : 從表尾開始向表頭搜索,移除與 value 相等的元素,數量爲 count 的絕對值。count = 0 : 移除表中所有與 value 相等的值

lrem key count value

在這裏插入圖片描述
返回列表 key 中,下標爲 index 的元素

lindex key index

對一個列表進行修剪

ltrim key start stop

Quene(list)

存放都是字符串,由redis組織成各種數據結構

redis怎麼實現棧(FILO)和隊列(FIFO)

list控制同一邊進,同一邊出就是棧

list控制一邊進,另一邊出就是隊列.

set操作(重要)

set集合是一個無序的不含重複值的隊列

將一個或多個 member 元素加入到集合 key 當中,已經存在於集合的 member 元素將被忽略

sadd key member

移除集合 key 中的一個或多個 member 元素,不存在的 member 元素會被忽略

srem key member

返回集合 key 中的所有成員

smembers key

在這裏插入圖片描述

hash操作(重要)

添加一個name=>value鍵值對到key這個hash類型

hset key name value

獲取hash類型的name鍵對應的值

hget key name

批量添加name=>value鍵值對到key這個hash類型

hmset key name1 key1 name2 key2

批量獲取hash類型的鍵對應的值

hmget key name1 name2

返回哈希表 key 中的所有鍵

hkeys

返回哈希表 key 中的所有值

hvals

返回哈希表 key 中,所有的鍵和值

hgetall

Redis 訂閱 事務(瞭解)

設置密碼

–通過配置文件操作(掌握)

  1. 通過命令動態調整密碼

    CONFIG SET 命令可以動態地調整 Redis 服務器的配置而無須重啓,重啓後失效
    CONFIG SET requirepass 123456 //將密碼設置爲123456
    CONFIG SET requirepass "" //清除密碼
    AUTH 123456  //輸入密碼進行認證
    

在這裏插入圖片描述

  1. 在配置文件redis.widows.conf中增加一行代碼
在配置文件redis.widows.conf中增加一行代碼
requirepass 123456
將密碼123456設置到配置文件中,redis啓動時加載該文件,即可啓用密碼

在這裏插入圖片描述

java代碼操作Redis(重要)

jar包

在這裏插入圖片描述

springboot (連接方式 – 只需要做配置) jedis

簡單操作

 String host = "127.0.0.1";
 int port = 6379;
 int timeout = 1000;
 Jedis jedis = new Jedis(host, port, timeout);
 String set = jedis.set("name", "一一");
 System.out.println(jedis.get("name"));
 jedis.close();

連接池配置

在這裏插入圖片描述

如果創建一個對象後需要爲他設置很多值,還不如先創建它配置對象並做完配置,然後再通過配置對象創建它

//1 創建jedispool配置對象
//2 做配置-四個
//3 創建jedispool
//4 通過jedispool獲取連接
//5 執行操作
//6 釋放連接
//7 摧毀連接池-如果是真正項目中它應該是一個受spring管理的單例

//1 創建jedispool配置對象
JedisPoolConfig config = new JedisPoolConfig();

//2 做配置-四個
config.setMaxIdle(2);
config.setMaxTotal(10);
config.setMaxWaitMillis(1*1000); //創建連接超時
config.setTestOnBorrow(true);//獲取連接是測試連接是否暢通

//3 創建jedispool
//1*1000 獲取連接超時時間
JedisPool pool = new JedisPool(config,"127.0.0.1",6379,1*1000,"admin");

//4 通過jedispool獲取連接
Jedis resource = pool.getResource();

//5 執行操作
String s = resource.set("name", "這是一個測試");
System.out.println(resource.get("name"));

對key 操作

//查詢所有的key   keys *
Set<String> keys = resource.keys("*");
System.out.println(keys);

對String操作 存值和取值

String s1 = resource.set("name", "一一");
System.out.println(resource.get("name"));

清空數據庫

resource.flushDB();

對list集合操作

resource.lpush("stu","{name:yiyi}","{name:erer}","{name:sasa}" );
//0, -1  表示全部
List<String> stu = resource.lrange("stu", 0, -1);
System.out.println(stu);

對set集合操作

resource.sadd("stu","{name:yiyi}","{name:erer}","{name:sasa}" );
Set<String> stu = resource.smembers("stu");
System.out.println(stu);

對hash(map)集合操作

HashMap map = new HashMap();
map.put("name","yiyi");
map.put("age","18");
map.put("sex","true");
resource.hmset("user1",map);

List<String> hmget = resource.hmget("user1", "name", "age", "sex");
System.out.println(hmget);

sort排序操作 對數字

resource.lpush("num", "2","1","6","4","8","3");
System.out.println(resource.sort("num"));

SortingParams sortingParams = new SortingParams();
sortingParams.desc();
System.out.println(resource.sort("num", sortingParams));

字母的排序 根據ASCII碼 (根據首字母)

resource.lpush("area","Chengdu","Changsha","Wuhan","Guangzhou");
SortingParams sortingParams1 = new SortingParams();
sortingParams1.alpha();
System.out.println(resource.sort("area", sortingParams1));

事務操作

Transaction multi = resource.multi();
multi.set("name","yiyi");
multi.set("age","21");
multi.incr("name");
multi.incr("age");
List<Object> results = multi.exec();
System.out.println(results);

資源釋放

// 6 釋放連接
jedis.close(); //底層做了兼容,如果是連接池操作就是釋放,如果是連接操作就是關閉
// 7 摧毀連接池-如果是真正項目中它應該是一個受spring管理的單例
pool.destroy();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章