小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

RedisRedis快速入門

 印度阿三17 2019-09-12

一、Redis的啟動(dòng)

?

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ù)器

得輸密碼

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

?

?

?

二、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ù)庫默認(rèn)擁有16個(gè)庫,數(shù)據(jù)會(huì)被存放在這16個(gè)庫中的某一個(gè)。

?

?

3.設(shè)置密碼

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

?

四、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ù)

?

?

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 鍵 步長 一次增長指定步長的值

decrby 鍵 步長 一次減少指定步長的值

?

?

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)行分割,以起到語義化的效果。

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

?

如果鍵沖突了,那么如果之前的數(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)用場景: 存對(duì)象時(shí)更方便

?

3. 列表類型 List

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

?

?

?

lpop 從左邊出列隊(duì)

?

rpush 和 rpop

?

模擬棧的效果:

?

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

?

?

其他命令:

LLEN key,查詢列表的長度

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的操作

@Testpublic 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");

?

來源:https://www./content-2-449201.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多