好程序員Java學(xué)習(xí)路線分享Redis快速入門

好程序員Java學(xué)習(xí)路線分享redis快速入門,Redis的啟動(dòng)

創(chuàng)新互聯(lián)建站專注于烏爾禾企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),成都做商城網(wǎng)站。烏爾禾網(wǎng)站建設(shè)公司,為烏爾禾等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

1.基于docker啟動(dòng)

1) 不帶配置文件啟動(dòng)?docker run -p 6379:6379 redis

2) 帶配置文件啟動(dòng)

docker run -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf

?

3)使用docker容器內(nèi)的客戶端來操作redis服務(wù)器

以交互的方式進(jìn)入到redis容器,再在/usr/local/bin/使用redis-cli工具連接redis服務(wù)器

好程序員Java學(xué)習(xí)路線分享Redis快速入門

好程序員Java學(xué)習(xí)路線分享Redis快速入門

得輸密碼

auth java1904

2.使用原生tar包啟動(dòng)

?

1)從官方下載tar.gz壓縮包,上傳到linux中

?

2)解壓

tar -zxvf ?...

?

3)下載make ?

???apt-get install make

?

4)下載gcc,因?yàn)閞edis是c寫的,需要gcc工具

apt-get intall gcc

?

5)?進(jìn)入解壓出來的文件夾內(nèi),然后使用make進(jìn)行編譯

?

6)進(jìn)入?src,執(zhí)行./redis-server ?../redis.conf ???開啟服務(wù)端

?

7)使用redis內(nèi)部的客戶端,來連接服務(wù)端,對(duì)redis服務(wù)端進(jìn)行操作

??src里 ???執(zhí)行 ??./redis-cli

好程序員Java學(xué)習(xí)路線分享Redis快速入門

?

二、Redis桌面版客戶端工具的使用

好程序員Java學(xué)習(xí)路線分享Redis快速入門

三、Redis的配置文件

redis.conf

在啟動(dòng)redis服務(wù)器時(shí),可以通過配置文件里面的參數(shù)的設(shè)置,來設(shè)置服務(wù)器,如果啟動(dòng)redis服務(wù)器,不帶配置文件,那么參數(shù)都是默認(rèn)值。

1.解除本機(jī)綁定

# bind ?127.0.0.1?注釋掉

2.redis數(shù)據(jù)庫(kù)默認(rèn)擁有16個(gè)庫(kù),數(shù)據(jù)會(huì)被存放在這16個(gè)庫(kù)中的某一個(gè)。

3.設(shè)置密碼

在連接時(shí)需要輸入密碼

好程序員Java學(xué)習(xí)路線分享Redis快速入門

四、Java的Redis客戶端:Jedis

redis自帶的客戶端:?redis-cli

1.引入依賴

<dependency>
????<groupId>redis.clients</groupId>
????<artifactId>jedis</artifactId>
????<version>2.9.0</version>
</dependency>

2.使用Jedis工具類

public?class?MyRedis?{
????public?static?void?main(String[]?args)?{
????????Jedis?jedis?=?new?Jedis("192.168.2.128",6379);
????????jedis.auth("java1904");
????????jedis.set("兩個(gè)月后的目標(biāo)","12k");
????????String?target?=?jedis.get("兩個(gè)月后的目標(biāo)");
????????System.out.println(target);
????}
}

五、Redis的五大數(shù)據(jù)類型

1. String類型

1)增刪改查

set ?key ?value ???添加/修改 ?鍵值對(duì)

get ?key ?==> value ??根據(jù)鍵得到值

del ?key1 [key2...] ?根據(jù)鍵刪除鍵值對(duì),返回值刪除的個(gè)數(shù)

好程序員Java學(xué)習(xí)路線分享Redis快速入門

mset ?k1 v1 ?k2 v2 [key value ...] ???一次性插入多個(gè)值

mget ?k1 ?k2 ?????????????一次性拿多個(gè)值

?

2)其他命令

incr ?????對(duì)整數(shù)進(jìn)行自增,浮點(diǎn)數(shù)也不行: ??set ?k1 ?1000 ?????????incr k1

decr ???對(duì)整數(shù)進(jìn)行遞減

?

incrby ?鍵 ?步長(zhǎng) ???一次增長(zhǎng)指定步長(zhǎng)的值 ???

decrby ?鍵 ?步長(zhǎng) ??一次減少指定步長(zhǎng)的值

2. hash類型

數(shù)據(jù)類型的特點(diǎn):

鍵?- ?值: ?鍵值對(duì)

而且?鍵里可以存放多個(gè)鍵值對(duì)

?

hset ??k1 ??鍵-值

hget ??k1 ?鍵

?

hmset ?k1 ?鍵-值 ?鍵-值?...

hmget ?k1 ?鍵 ?鍵...

?

hdel ???k1 ??鍵 ?鍵...

?

其他命令:

hlen ?k1

查看k1有幾個(gè)鍵值對(duì)

?

hexists k1?鍵

查看鍵是否存在于k1中

hgetall k1

獲得K1中的所有的鍵值對(duì)

?

注意:?在實(shí)際使用時(shí),往往會(huì)使用這種命名方式:??通過“:”對(duì)鍵名進(jìn)行分割,以起到語(yǔ)義化的效果。

比如??“user:1001:dreams” ?:?用戶id是1001的這個(gè)用戶的所有夢(mèng)想

?

如果鍵沖突了,那么如果之前的數(shù)據(jù)類型與現(xiàn)在的數(shù)據(jù)類型不同,則會(huì)報(bào)這個(gè)異常:

redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

?

使用jedis進(jìn)行操作時(shí),hmset中需要存入map集合

HashMap<String,String>?map?=?new?HashMap<String,?String>();
map.put("d1","10000");
map.put("d2","20000");
jedis.hmset("user:1001:dreams",map);

hash類型的應(yīng)用場(chǎng)景: 存對(duì)象時(shí)更方便

好程序員Java學(xué)習(xí)路線分享Redis快速入門

3.?列表類型?List

列表可以實(shí)現(xiàn)棧和隊(duì)列的效果

好程序員Java學(xué)習(xí)路線分享Redis快速入門

lpop?從左邊出列隊(duì)

好程序員Java學(xué)習(xí)路線分享Redis快速入門

rpush?和 ?rpop

好程序員Java學(xué)習(xí)路線分享Redis快速入門

模擬棧的效果:

?

模擬隊(duì)列的效果:?先進(jìn)先出

?

其他命令:

LLEN key,查詢列表的長(zhǎng)度

LINDEX key index,獲取指定索引的值?get(int index)

LSET key index value,設(shè)置指定索引的值

Ltrim key start end?保留指定索引范圍的值

4.Set類型

Sadd key element [element]?添加元素

Scard key?計(jì)算元素個(gè)數(shù)

Smembers key?獲取所有的元素

Srem key element [element]?刪除元素 ?

Sismember key element?判斷元素是否在集合中,存在返回1,否則返回0

Spop key?從集合隨機(jī)彈出元素

5.zset類型

是一個(gè)有序的集合

?

常用命令:

Zadd key?score?member [score?member ...]?添加成員,并為每個(gè)成員設(shè)置分?jǐn)?shù)

Zcard key?計(jì)算成員的個(gè)數(shù)

Zscore key member?計(jì)算某個(gè)成員的分?jǐn)?shù)

Zrank key member?計(jì)算某個(gè)成員的排名

Zincrby key increment member?增加成員的分?jǐn)?shù)

Zrange key start end withscores?返回指定排名范圍的成員

zrevrange key start end?逆序展示

Zrem key member [member]?刪除成員、

?

jedis的操作

@Test
public?void?testZset(){
????Jedis?jedis?=?new?Jedis("192.168.2.128",6379);
????jedis.auth("java1904");

????HashMap<String,Double>?map?=?new?HashMap<String,?Double>();

????map.put("l1",100d);
????map.put("l2",200d);


????//?map是一個(gè)HashMap<String,Double>?的map?
????jedis.zadd("order1",map);

????jedis.zincrby("order1",200d,"l1");

????Set<String>?order1?=?jedis.zrevrange("order1",?0,?-1);

????System.out.println(order1);


}

六、使用Jedis連接池

package?com.qf.redis.util;

import?redis.clients.jedis.Jedis;
import?redis.clients.jedis.JedisPool;
import?redis.clients.jedis.JedisPoolConfig;

public?class?JedisPoolUtil?{

????private?static?JedisPool?pool?;

????static{

????????JedisPoolConfig?config?=?new?JedisPoolConfig();

????????config.setMaxIdle(100);
????????config.setMaxWaitMillis(2000);
????????config.setMaxTotal(200);

????????String?host?=?"192.168.2.128";
????????pool?=?new?JedisPool(config,host);

????}




????public?static?Jedis?getJedisFromPool(){

???????return??pool.getResource();

????}

}

使用連接池:

Jedis jedis = JedisPoolUtil.getJedisFromPool();

jedis.auth("java1904");

?

?

本文名稱:好程序員Java學(xué)習(xí)路線分享Redis快速入門
網(wǎng)站網(wǎng)址:http://muchs.cn/article12/iepggc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、建站公司、Google手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站