国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

ubuntu下的linux系統(tǒng)redis部署及使用

gxyz / 1081人閱讀

摘要:一部署新建文件夾存放下載官方英文網(wǎng)址中文網(wǎng)址解壓編譯可以不執(zhí)行可以不執(zhí)行運(yùn)行命令出現(xiàn)的錯(cuò)誤解析命令未找到解決安裝能上網(wǎng),再次沒(méi)有那個(gè)文件或目錄解決,再次啟動(dòng)服務(wù)啟動(dòng)后即可連接使用,也可使用客戶(hù)端如果修改配置文件了,指定配置文件

一.部署redis

1.新建文件夾存放:

mkdir /home/henlafeng/redis
cd redis/

2.下載:

  http://redis.io/  官方英文網(wǎng)址
  http://www.redis.cn/ 中文網(wǎng)址
  wget http://download.redis.io/releases/redis-3.2.9.tar.gz  

3.解壓:

  tar -zxvf redis-3.2.9.tar.gz
  cd redis-3.2.9

4.編譯:

   make
   make install (可以不執(zhí)行)
   Redis Test   (可以不執(zhí)行)
運(yùn)行make命令出現(xiàn)的錯(cuò)誤解析: 
  “gcc命令未找到”解決:安裝gcc:yum install gcc-c++ (能上網(wǎng)),再次make
  “Jemalloc/jemalloc.h:沒(méi)有那個(gè)文件或目錄”解決:make distclean  ,再次make

5.啟動(dòng)redis服務(wù):?jiǎn)?dòng)后java即可連接使用,也可使用redis客戶(hù)端

 cd /redis-3.2.9/src
 ./redis-server   如果修改配置文件了,指定配置文件啟動(dòng)使用:
 ./redis-server ../redis1.conf   (后面加新配置文件的路徑)

6.啟動(dòng)客戶(hù)端:

 cd /redis-3.2.9/src
 ./redis-cli  

7.關(guān)閉客戶(hù)端:

 單實(shí)例關(guān)閉:redis-cli shutdown
 多實(shí)例關(guān)閉:指定端口關(guān)閉:redis-cli -p6379 shutdown         

8.關(guān)閉redis服務(wù):

 ctrl + c  終止正在執(zhí)行的命令 或 新開(kāi)個(gè)終端殺掉redis的進(jìn)程:
 ps -ef|grep redis 查看進(jìn)程
 kill  進(jìn)程號(hào)      殺掉進(jìn)程    

二.java連接使用redis

1)準(zhǔn)備工作:?jiǎn)?dòng)redis服務(wù)和導(dǎo)入jar包:

    commons-pool2-2.4.2.jar
    jedis-2.9.0.jar
    

2)測(cè)試連接:

    Jedis jedis = new Jedis("192.168.31.XX", 6379);//參數(shù):ip和redis端口
    jedis.auth("XXXXX"); //輸入密碼
    System.out.println(jedis.ping());// 打印pong連接成功    

3)使用演示:

          鍵(key)、字符串(String)、列表(List)
          集合(Set)、哈希(Hash)、有序集合(Zset/sorted set)   
          以上是redis的數(shù)據(jù)類(lèi)型,根據(jù)數(shù)據(jù)類(lèi)型順序一一演示java中常用操作

// key

    jedis.flushDB();//清除當(dāng)前庫(kù)所有數(shù)據(jù)
    jedis.set("k1", "v1");//賦值
    jedis.set("k2", "v2");
    jedis.set("k3", "v3");
    System.out.println("0exists(k1):" + jedis.exists("k1"));//是否存在:true
    jedis.move("k3", 2);//k3移動(dòng)到2號(hào)庫(kù),默認(rèn)是0號(hào)庫(kù)
    System.out.println("0庫(kù)的key:" + jedis.keys("*"));
    jedis.select(2);//切換到2號(hào)庫(kù)
    System.out.println("2庫(kù)的key:" + jedis.keys("*"));//查看所有key
    System.out.println("2exists(k3):" + jedis.exists("k3"));// true
    jedis.select(0);//切換到0號(hào)庫(kù)
    System.out.println("0庫(kù)的k3的值:" + jedis.get("k3"));// 取值:null
    System.out.println("0庫(kù)k1的存活時(shí)間:" + jedis.ttl("k1"));///存活時(shí)間
    System.out.println("0庫(kù)k2的存活時(shí)間:" + jedis.ttl("k2"));
    jedis.expire("k2", 1);//設(shè)置k2的有效時(shí)間為1秒
    Thread.sleep(1000);
    System.out.println("0庫(kù)k1的存活時(shí)間:" + jedis.ttl("k1"));// -1永久有效
    System.out.println("0庫(kù)k2的存活時(shí)間:" + jedis.ttl("k2"));// -2已過(guò)期
    System.out.println("0庫(kù)k2的值:" + jedis.get("k2"));// 過(guò)期的值get獲取不到
    jedis.del("k1");
    System.out.println("0庫(kù)k1的值:" + jedis.get("k1"));// del的值get獲取不到
    // 0庫(kù)無(wú)數(shù)據(jù),2庫(kù)有k3
    jedis.select(2);
    System.out.println("2庫(kù)k3的值:" + jedis.get("k3"));// v3
    jedis.set("k3", "vv");
    System.out.println("2庫(kù)k3的值:" + jedis.get("k3"));// vv,新值覆蓋舊值
    System.out.println("2庫(kù)k3的類(lèi)型" + jedis.type("k3"));// 查看類(lèi)型:string
    jedis.lpush("mylist", "1");
    jedis.lpush("mylist", "2");
    jedis.lpush("mylist", "3");
    jedis.lpush("mylist", "4");
    jedis.lpush("mylist", "5");
    System.out.println("mylist的值:" + jedis.lrange("mylist", 0, -1));// 5,4,3,2,1
    System.out.println("mylist的類(lèi)型:" + jedis.type("mylist"));// list

// String

    jedis.flushDB();
    jedis.set("k1", "v1");
    jedis.append("k1", "2345");// k1值后面追加2345
    System.out.println(jedis.get("k1"));// v12345
    System.out.println(jedis.strlen("k1"));// 長(zhǎng)度:6
    jedis.set("k2", "4");
    jedis.incr("k2");// 每次加1
    jedis.incr("k2");
    jedis.incr("k2");
    jedis.decr("k2");// 每次減1
    jedis.decr("k2");
    System.out.println(jedis.get("k2"));// 5
    jedis.incrBy("k2", 5);// 加5
    jedis.decrBy("k2", 4);// 減4
    System.out.println(jedis.get("k2"));// 6
    System.out.println(jedis.getrange("k1", 0, 2));// 下標(biāo)0到下標(biāo)2:v12
    System.out.println(jedis.getrange("k1", 0, -1));// 查看k1值:v12345
    jedis.setrange("k1", 0, "DDD");// 下標(biāo)0開(kāi)始的值改為DDD,覆蓋原位置相應(yīng)的值
    System.out.println(jedis.get("k1"));// DDD345
    System.out.println(jedis.setnx("k1", "v1"));// k1不存在就set進(jìn)去:0 k1存在set失敗
    System.out.println(jedis.setnx("k3", "v3"));// k3不存在就set進(jìn)去:1 k3不存在set成功
    jedis.mset("k1", "v1", "k2", "v2", "k3", "v3");// 同時(shí)賦值多個(gè),逗號(hào)間隔
    System.out.println(jedis.mget("k1", "k2", "k3"));// [v1, v2, v3]
    System.out.println(jedis.msetnx("k3", "v3", "k4", "v4"));// 不存在就賦值多個(gè):0
                                                                // k3存在所以賦值失敗
    System.out.println(jedis.msetnx("k4", "v4", "k5", "v5"));// 1
    System.out.println(jedis.mget("k4", "k5"));// [v4, v5]

// list

    jedis.select(0);
    jedis.flushDB();
    jedis.lpush("list01", "1");// 左邊存入 lpush的list01:[5, 4, 3, 2, 1]
    jedis.lpush("list01", "2");
    jedis.lpush("list01", "3");
    jedis.lpush("list01", "4");
    jedis.lpush("list01", "5");
    jedis.rpush("list02", "1");// 右邊存入 rpush的list02:[1, 2, 3, 4, 5]
    jedis.rpush("list02", "2");
    jedis.rpush("list02", "3");
    jedis.rpush("list02", "4");
    jedis.rpush("list02", "5");
    List lrange01 = jedis.lrange("list01", 0, -1);//查看所有
    List lrange02 = jedis.lrange("list02", 0, -1);
    System.out.println("lpush的list01:" + lrange01.toString());// 正進(jìn)反出
    System.out.println("rpush的list02:" + lrange02.toString());// 正進(jìn)正出
    String lpop01 = jedis.lpop("list01");// 左邊出棧
    String lpop02 = jedis.lpop("list02");// 左邊出棧
    System.out.println("list01的lpop:" + lpop01);// list01的lpop:5
    System.out.println("list02的lpop:" + lpop02);// list02的lpop:1
    String rpop01 = jedis.rpop("list01");
    String rpop02 = jedis.rpop("list02");
    System.out.println("list01的rpop:" + rpop01);// list01的rpop:1
    System.out.println("list02的rpop:" + rpop02);// list02的rpop:5
    System.out.println(jedis.lindex("list01", 2));// 下標(biāo)3的值:2
    System.out.println(jedis.lindex("list02", 2));// 下標(biāo)3的值:4
    System.out.println(jedis.llen("list01"));// 集合長(zhǎng)度:3
    System.out.println(jedis.llen("list02"));// 集合長(zhǎng)度:3
    System.out.println(jedis.lindex("list01", 3));// null
    System.out.println(jedis.lindex("list02", 3));// null
    jedis.rpush("list03", "1");
    jedis.rpush("list03", "1");
    jedis.rpush("list03", "1");
    jedis.rpush("list03", "2");
    jedis.rpush("list03", "2");
    jedis.rpush("list03", "2");
    jedis.rpush("list03", "3");
    jedis.rpush("list03", "3");
    jedis.rpush("list03", "3");
    jedis.rpush("list03", "4");
    jedis.rpush("list03", "5");
    jedis.rpush("list03", "6");
    jedis.lrem("list03", 2, "1");// 移除2個(gè)1
    jedis.lrem("list03", 2, "2");// 移除2個(gè)2
    jedis.lrem("list03", 2, "3");// 移除2個(gè)3
    System.out.println(jedis.lrange("list03", 0, -1));// [1, 2, 3, 4, 5, 6]
    jedis.del("list01");//刪除元素
    jedis.lpush("list01", "1");
    jedis.lpush("list01", "2");
    jedis.lpush("list01", "3");
    jedis.lpush("list01", "4");
    jedis.lpush("list01", "5");
    jedis.lpush("list01", "6");
    jedis.lpush("list01", "7");
    jedis.lpush("list01", "8");
    jedis.ltrim("list01", 0, 4);// 截取下標(biāo)0到4
    System.out.println(jedis.lrange("list01", 0, -1));// [8, 7, 6, 5, 4]
    jedis.ltrim("list03", 0, 4);// 截取下標(biāo)0到4
    System.out.println(jedis.lrange("list03", 0, -1));// [1, 2, 3, 4, 5]
    jedis.rpoplpush("list01", "list03");// list01的尾數(shù)放到list03的頭值
    System.out.println(jedis.lrange("list01", 0, -1));// [8, 7, 6, 5]
    System.out.println(jedis.lrange("list03", 0, -1));// [4, 1, 2, 3, 4, 5]
    jedis.lset("list03", 0, "6");// list03下標(biāo)0的值為6
    System.out.println(jedis.lrange("list03", 0, -1));// [6, 1, 2, 3, 4, 5]
    jedis.linsert("list01", LIST_POSITION.BEFORE, "7", "java");// list01的值7前插入值java
    jedis.linsert("list01", LIST_POSITION.AFTER, "6", "redis");// list01的值6后插入值redis
    System.out.println(jedis.lrange("list01", 0, -1));// [8, java, 7, 6,
                                                        // redis, 5]
    jedis.sort("list01");// 排序

// set

    jedis.flushDB();
    jedis.sadd("set01", "1");
    jedis.sadd("set01", "1");
    jedis.sadd("set01", "2");
    jedis.sadd("set01", "2");
    jedis.sadd("set01", "3");
    jedis.sadd("set01", "3");
    System.out.println(jedis.smembers("set01"));// 查詢(xún)所有:[1, 2, 3]
    System.out.println(jedis.sismember("set01", "1"));// 是否存在值1:true
    System.out.println(jedis.scard("set01"));// 獲取元素個(gè)數(shù):3
    jedis.srem("set01", "1");// 移除值1
    System.out.println(jedis.smembers("set01"));// [2, 3]
    jedis.sadd("set02", "1");
    jedis.sadd("set02", "2");
    jedis.sadd("set02", "3");
    jedis.sadd("set02", "4");
    jedis.sadd("set02", "5");
    jedis.sadd("set02", "6");
    jedis.sadd("set02", "7");
    jedis.srandmember("set02", 3);// 隨機(jī)取3個(gè)數(shù)字
    System.out.println(jedis.srandmember("set02", 3));// [5, 1, 6] [1, 3, 6]...
    jedis.spop("set01");// 隨機(jī)出棧
    System.out.println(jedis.spop("set01"));// 3 2
    System.out.println(jedis.smembers("set01"));// [] 出棧就沒(méi)了
    jedis.sadd("set03", "x");
    jedis.sadd("set03", "y");
    jedis.sadd("set03", "z");
    jedis.smove("set02", "set03", "4");// set02的4移動(dòng)到set03
    System.out.println(jedis.smembers("set02"));// [1, 2, 3, 5, 6, 7]
    System.out.println(jedis.smembers("set03"));// [4, y, z, x]
    // 數(shù)學(xué)集合類(lèi)
    jedis.del("set01");
    jedis.sadd("set01", "1");
    jedis.sadd("set01", "2");
    jedis.sadd("set01", "3");
    jedis.sadd("set01", "a");
    jedis.sadd("set01", "b");
    jedis.sdiff("set01", "set02");// 差集:在第一個(gè)set里面而不在后面任何一個(gè)set里面的項(xiàng)
    System.out.println(jedis.sdiff("set01", "set02"));// 以set01為標(biāo)準(zhǔn)的差集: [b,
                                                        // a]
    System.out.println(jedis.sdiff("set02", "set01"));// 以set02為標(biāo)準(zhǔn)的差集:[7, 6,
                                                        // 5]
    jedis.sinter("set01", "set02");// 交集:每個(gè)set都有的項(xiàng)
    System.out.println(jedis.sinter("set01", "set02"));// [2, 1, 3]
    jedis.sunion("set01", "set02");// 并集:所有set的總和
    System.out.println(jedis.sunion("set01", "set02"));//[2, b, 7, a, 5, 6, 1, 3]

// hash-map

    jedis.flushDB();
    jedis.hset("user", "id", "11");
    System.out.println(jedis.hget("user", "id"));// 11
    jedis.hset("user", "name", "z3");
    System.out.println(jedis.hget("user", "name"));// z3

    Map map = new HashMap();
    map.put("name", "l4");
    map.put("age", "26");
    jedis.hmset("customer", map);
    List list01 = jedis.hmget("customer", "name");
    System.out.println(list01);// [l4]
    jedis.hgetAll("customer");// 獲取customer所有信息
    System.out.println(jedis.hgetAll("customer"));// {name=l4, age=26}
    jedis.hdel("user", "name");// 刪除user的name
    System.out.println(jedis.hgetAll("user"));// 查看所有:{id=11}
    System.out.println(jedis.hlen("customer"));// 長(zhǎng)度:2
    System.out.println(jedis.hlen("user"));// 長(zhǎng)度:1
    jedis.hexists("user", "name");// 是否存在name
    System.out.println(jedis.hexists("user", "name"));// false
    System.out.println(jedis.hexists("customer", "name"));// true
    System.out.println(jedis.hkeys("customer"));// 獲取所有key:[age, name]
    System.out.println(jedis.hvals("customer"));// 獲取所有value:[26, l4]
    System.out.println(jedis.hincrBy("customer", "age", 2));// age加2:28
    jedis.hset("customer", "score", "91.5");
    System.out.println(jedis.hincrByFloat("customer", "score", 0.5));// score加0.5:92.0
    jedis.hsetnx("user", "name", "Z3");// 不存在就set
    System.out.println(jedis.hsetnx("customer", "age", "18"));// 0
    jedis.hsetnx("customer", "email", "123@163.com");
    Iterator iterator = jedis.hkeys("customer").iterator();
    while (iterator.hasNext()) {
        String key = iterator.next();
        System.out.println("key:" + key);// key:score key:email key:age
                                            // key:name
    }

// zset

    jedis.flushDB();
    jedis.zadd("zset01", 60, "v1");
    jedis.zadd("zset01", 70, "v2");
    jedis.zadd("zset01", 80, "v3");
    jedis.zadd("zset01", 90, "v4");
    jedis.zadd("zset01", 100, "v5");
    System.out.println(jedis.zrange("zset01", 0, -1));// [v1, v2, v3, v4,
                                                        // v5]
    System.out.println(jedis.zrangeByScore("zset01", 60, 90));// [v1, v2,
                                                                // v3, v4]
    System.out.println(jedis.zrangeByScore("zset01", 60, 90, 2, 2));// 60-90之間取下標(biāo)2開(kāi)始的2個(gè)值:[v3,
                                                                    // v4]
    jedis.zrem("zset01", "v5");//移除v5元素
    System.out.println(jedis.zrange("zset01", 0, -1));// [v1, v2, v3, v4]
    System.out.println(jedis.zcard("zset01"));//長(zhǎng)度:4
    System.out.println(jedis.zcount("zset01", 60, 80));//60-80的個(gè)數(shù):3
    System.out.println(jedis.zrank("zset01", "v4"));//下標(biāo)值:3
    System.out.println(jedis.zscore("zset01", "v4"));//v3的值:90.0
    System.out.println(jedis.zrevrank("zset01", "v4"));//逆序獲得下標(biāo)值:0
    System.out.println(jedis.zrevrangeByScore("zset01", 90, 60));//逆序獲取90-60的值:[v4, v3, v2, v1]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/67259.html

相關(guān)文章

  • ubuntu部署Kubernetes管理docker集群示例

    摘要:部署環(huán)境及架構(gòu)操作系統(tǒng)版本版本版本服務(wù)器信息在詳細(xì)介紹部署集群前,先給大家展示下集群的邏輯架構(gòu)。其他操作更新刪除查看刪除除此之外,你可以刪除,如刪除上的格式為服務(wù)名字,不必關(guān)心從哪個(gè)上刪除了。 本文通過(guò)實(shí)際操作來(lái)演示Kubernetes的使用,因?yàn)榄h(huán)境有限,集群部署在本地3個(gè)ubuntu上,主要包括如下內(nèi)容: 部署環(huán)境介紹,以及Kubernetes集群邏輯架構(gòu) 安裝部署Open v...

    BingqiChen 評(píng)論0 收藏0
  • ubuntu部署Kubernetes管理docker集群示例

    摘要:部署環(huán)境及架構(gòu)操作系統(tǒng)版本版本版本服務(wù)器信息在詳細(xì)介紹部署集群前,先給大家展示下集群的邏輯架構(gòu)。其他操作更新刪除查看刪除除此之外,你可以刪除,如刪除上的格式為服務(wù)名字,不必關(guān)心從哪個(gè)上刪除了。 本文通過(guò)實(shí)際操作來(lái)演示Kubernetes的使用,因?yàn)榄h(huán)境有限,集群部署在本地3個(gè)ubuntu上,主要包括如下內(nèi)容: 部署環(huán)境介紹,以及Kubernetes集群邏輯架構(gòu) 安裝部署Open v...

    codergarden 評(píng)論0 收藏0
  • 從零開(kāi)始學(xué)習(xí) Docker

    摘要:此命令下載測(cè)試鏡像并在容器中運(yùn)行它。國(guó)內(nèi)很多云服務(wù)商都提供了加速器服務(wù),例如阿里云加速器注冊(cè)用戶(hù)并且申請(qǐng)加速器,會(huì)獲得如這樣的地址。獲取鏡像阿里云鏡像庫(kù)上有大量的高質(zhì)量的鏡像可以用,這里我們就說(shuō)一下怎么獲取這些鏡像并運(yùn)行。 showImg(https://segmentfault.com/img/remote/1460000012924583); 這篇文章是我學(xué)習(xí) Docker 的記錄...

    lily_wang 評(píng)論0 收藏0
  • 代碼級(jí)操作指南 | 如何在Docker Swarm中運(yùn)行服務(wù)

    摘要:節(jié)點(diǎn)管理器將利用該聲明該集群服務(wù)。在本示例當(dāng)中,我們將部署一項(xiàng)服務(wù)。此標(biāo)記用于告知公布端口作為該服務(wù)的可用端口。將此稱(chēng)為入口負(fù)載均衡。當(dāng)外部系統(tǒng)調(diào)用某項(xiàng)服務(wù)時(shí),接收節(jié)點(diǎn)會(huì)接受流量并利用提供的內(nèi)部服務(wù)對(duì)其進(jìn)行負(fù)載均衡。 最新版本Docker Engine v1.12中,包含了多項(xiàng)與Docker Swarm緊密相關(guān)的功能變更。在今天的文章中,數(shù)人云將和大家探討如何利用Docker的Swar...

    Winer 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<