日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
CentOS6.7下Redis4.0.6安裝和Jedis2.8.1簡(jiǎn)單使用

一、redis的安裝

這里演示的版本是Redis4.0.6,Linux系統(tǒng)是centos6.7,Jdk1.7,Jedis2.8.1

成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),周口網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:周口等地區(qū)。周口做網(wǎng)站價(jià)格咨詢:028-86922220

這是官方文檔介紹的安裝方式

下載,解壓,編譯:

$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
$ tar xzf redis-4.0.6.tar.gz $ cd redis-4.0.6 $ make

二進(jìn)制文件是編譯完成后在src目錄下,通過(guò)下面的命令啟動(dòng)Redis服務(wù):

$ src/redis-server

你可以使用內(nèi)置的客戶端命令redis-cli進(jìn)行使用:

$ src/redis-cli redis> set foo bar OK redis> get foo "bar"

當(dāng)然,個(gè)人不建議直接使用源碼文件中的服務(wù),make編譯完成后,可以安裝到指定目錄:

make PREFIX=/usr/local/redis install

 現(xiàn)在去剛剛tar包解壓出來(lái)的源碼目錄中,拷貝一個(gè)redis.conf配置文件,放到/usr/local/redis/bin/目錄下

 以后在這個(gè)目錄下使用就好了

啟動(dòng)服務(wù)(暫時(shí)不使用自己剛才復(fù)制過(guò)來(lái)的redis.conf配置文件)

./redis-server

服務(wù)端啟動(dòng)成功

啟動(dòng)客戶端(暫時(shí)不設(shè)置ip,端口號(hào)和密碼)

./redis-cli

客戶端啟動(dòng)成功

二、Java程序中jedis操作redis

上面的方式只是一種小練習(xí),我們現(xiàn)在通過(guò)Java程序用jedis來(lái)操作Linux服務(wù)器上的redis。

用maven來(lái)引入jedis:

    
        
            redis.clients
            jedis
            2.8.1
        
    

Java代碼:

    public static void main(String[] args) {   // 虛擬機(jī)設(shè)置的ip,redis默認(rèn)端口號(hào)
        Jedis jedis = new Jedis("192.168.133.128", 6379); jedis.set("key01", "zhangsan"); jedis.set("key02", "lisi"); System.out.println(jedis.get("key01")); }

注意上面的代碼是有問(wèn)題的!

三、redis配置文件

上面的代碼運(yùn)行后,會(huì)報(bào)錯(cuò)

redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect

連接超被拒絕了,這是因?yàn)?,redis的訪問(wèn)ip默認(rèn)是127.0.0.1

你需要在自己拷貝的redis.conf配置文件中修改:

文檔很長(zhǎng),可以通過(guò)"/"命令來(lái)查找"bind"字符串,按n搜索下一個(gè)

:/bind

把綁定的主機(jī)ip添加進(jìn)去,之后啟動(dòng)redis服務(wù)的時(shí)候,需要手動(dòng)加載配置文件

我的配置文件放在了和server服務(wù)的同一個(gè)目錄里,所以啟動(dòng)服務(wù)時(shí)輸入:

./redis-server redis.conf

注意?。喝绻惠斎牒竺娴呐渲梦募夸?,那么該配置文件不起作用,會(huì)提示說(shuō)啟動(dòng)默認(rèn)的配置文件。

之后再次運(yùn)行Java代碼

又報(bào)錯(cuò)??!

redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.

這錯(cuò)報(bào)的好長(zhǎng)。。

好心的博主幫你谷歌翻譯了一下。

簡(jiǎn)單來(lái)說(shuō)呢?就是給你提供了幾個(gè)解決方案

1)只需禁用保護(hù)模式,即可通過(guò)從同一主機(jī)連接到Redis,從回送接口發(fā)送命令“CONFIG SET protected-mode no”正在運(yùn)行,但是如果您這樣做,請(qǐng)勿使用互聯(lián)網(wǎng)公開(kāi)訪問(wèn)互聯(lián)網(wǎng)。使用CONFIG REWRITE使此更改永久。

2)或者,您可以通過(guò)編輯Redis配置文件并將protected mode選項(xiàng)設(shè)置為“no”來(lái)禁用保護(hù)模式,然后重新啟動(dòng)服務(wù)器。

3)如果您只是為了測(cè)試而手動(dòng)啟動(dòng)服務(wù)器,請(qǐng)使用“ --protected-mode no”選項(xiàng)重新啟動(dòng)服務(wù)器。

4)設(shè)置綁定地址或認(rèn)證密碼。

這是redis4.0版本的新特性,redis3不會(huì)報(bào)錯(cuò)。

在這里我選擇設(shè)置redis密碼,同樣打開(kāi)redis.conf配置文件,設(shè)置密碼為123456,保存退出

然后啟動(dòng)服務(wù)器

之后你要想在Linux里用命令打開(kāi)redis客戶端,需要輸入一些參數(shù)

很顯然,-h是redis服務(wù)綁定的主機(jī)ip,-p是redis服務(wù)的端口號(hào),-a是redis服務(wù)的密碼,都可以在redis.conf里更改的

然后就好了

這個(gè)時(shí)候,Java代碼中的問(wèn)題還沒(méi)解決完,運(yùn)行還會(huì)報(bào)錯(cuò)的,沒(méi)有訪問(wèn)權(quán)限

redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.

你還需要在Java代碼中增加一條密碼設(shè)置

    public static void main(String[] args) {
        // 虛擬機(jī)的設(shè)置的ip,,redis默認(rèn)端口號(hào)
        Jedis jedis = new Jedis("192.168.133.128", 6379);
        // redis訪問(wèn)密碼
        jedis.auth("123456");
        jedis.set("key01", "zhangsan");
        jedis.set("key02", "lisi");
        System.out.println(jedis.get("key01"));
    }

OK,運(yùn)行正常

http://www.runoob.com/redis/redis-intro.html

redis.conf 配置項(xiàng)說(shuō)明如下:

1. Redis默認(rèn)不是以守護(hù)進(jìn)程的方式運(yùn)行,可以通過(guò)該配置項(xiàng)修改,使用yes啟用守護(hù)進(jìn)程,可以后臺(tái)啟動(dòng),用ps -ef | grep redis查看redis進(jìn)程

    daemonize no

2. 當(dāng)Redis以守護(hù)進(jìn)程方式運(yùn)行時(shí),Redis默認(rèn)會(huì)把pid寫(xiě)入/var/run/redis.pid文件,可以通過(guò)pidfile指定

    pidfile /var/run/redis.pid

3. 指定Redis監(jiān)聽(tīng)端口,默認(rèn)端口為6379,作者在自己的一篇博文中解釋了為什么選用6379作為默認(rèn)端口,因?yàn)?379在手機(jī)按鍵上MERZ對(duì)應(yīng)的號(hào)碼,而MERZ取自意大利歌女Alessia Merz的名字

    port 6379

4. 綁定的主機(jī)地址

    bind 127.0.0.1

5.當(dāng) 客戶端閑置多長(zhǎng)時(shí)間后關(guān)閉連接,如果指定為0,表示關(guān)閉該功能

    timeout 300

6. 指定日志記錄級(jí)別,Redis總共支持四個(gè)級(jí)別:debug、verbose、notice、warning,默認(rèn)為verbose

    loglevel verbose

7. 日志記錄方式,默認(rèn)為標(biāo)準(zhǔn)輸出,如果配置Redis為守護(hù)進(jìn)程方式運(yùn)行,而這里又配置為日志記錄方式為標(biāo)準(zhǔn)輸出,則日志將會(huì)發(fā)送給/dev/null

    logfile stdout

8. 設(shè)置數(shù)據(jù)庫(kù)的數(shù)量,默認(rèn)數(shù)據(jù)庫(kù)為0,可以使用SELECT 命令在連接上指定數(shù)據(jù)庫(kù)id

    databases 16

9. 指定在多長(zhǎng)時(shí)間內(nèi),有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件,可以多個(gè)條件配合

    save

    Redis默認(rèn)配置文件中提供了三個(gè)條件:

    save 900 1

  save 300 10

  save 60 10000

    分別表示900秒(15分鐘)內(nèi)有1個(gè)更改,300秒(5分鐘)內(nèi)有10個(gè)更改以及60秒內(nèi)有10000個(gè)更改。

10. 指定存儲(chǔ)至本地?cái)?shù)據(jù)庫(kù)時(shí)是否壓縮數(shù)據(jù),默認(rèn)為yes,Redis采用LZF壓縮,如果為了節(jié)省CPU時(shí)間,可以關(guān)閉該選項(xiàng),但會(huì)導(dǎo)致數(shù)據(jù)庫(kù)文件變的巨大

    rdbcompression yes

11. 指定本地?cái)?shù)據(jù)庫(kù)文件名,默認(rèn)值為dump.rdb

    dbfilename dump.rdb

12. 指定本地?cái)?shù)據(jù)庫(kù)存放目錄

    dir ./

13. 設(shè)置當(dāng)本機(jī)為slav服務(wù)時(shí),設(shè)置master服務(wù)的IP地址及端口,在Redis啟動(dòng)時(shí),它會(huì)自動(dòng)從master進(jìn)行數(shù)據(jù)同步

    slaveof

14. 當(dāng)master服務(wù)設(shè)置了密碼保護(hù)時(shí),slav服務(wù)連接master的密碼

    masterauth

15. 設(shè)置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時(shí)需要通過(guò)AUTH 命令提供密碼,默認(rèn)關(guān)閉

    requirepass foobared

16. 設(shè)置同一時(shí)間最大客戶端連接數(shù),默認(rèn)無(wú)限制,Redis可以同時(shí)打開(kāi)的客戶端連接數(shù)為Redis進(jìn)程可以打開(kāi)的最大文件描述符數(shù),如果設(shè)置 maxclients 0,表示不作限制。當(dāng)客戶端連接數(shù)到達(dá)限制時(shí),Redis會(huì)關(guān)閉新的連接并向客戶端返回max number of clients reached錯(cuò)誤信息

    maxclients 128

17. 指定Redis最大內(nèi)存限制,Redis在啟動(dòng)時(shí)會(huì)把數(shù)據(jù)加載到內(nèi)存中,達(dá)到最大內(nèi)存后,Redis會(huì)先嘗試清除已到期或即將到期的Key,當(dāng)此方法處理 后,仍然到達(dá)最大內(nèi)存設(shè)置,將無(wú)法再進(jìn)行寫(xiě)入操作,但仍然可以進(jìn)行讀取操作。Redis新的vm機(jī)制,會(huì)把Key存放內(nèi)存,Value會(huì)存放在swap區(qū)

    maxmemory

18. 指定是否在每次更新操作后進(jìn)行日志記錄,Redis在默認(rèn)情況下是異步的把數(shù)據(jù)寫(xiě)入磁盤(pán),如果不開(kāi)啟,可能會(huì)在斷電時(shí)導(dǎo)致一段時(shí)間內(nèi)的數(shù)據(jù)丟失。因?yàn)?redis本身同步數(shù)據(jù)文件是按上面save條件來(lái)同步的,所以有的數(shù)據(jù)會(huì)在一段時(shí)間內(nèi)只存在于內(nèi)存中。默認(rèn)為no

    appendonly no

19. 指定更新日志文件名,默認(rèn)為appendonly.aof

     appendfilename appendonly.aof

20. 指定更新日志條件,共有3個(gè)可選值: 
    no:表示等操作系統(tǒng)進(jìn)行數(shù)據(jù)緩存同步到磁盤(pán)(快) 
    always:表示每次更新操作后手動(dòng)調(diào)用fsync()將數(shù)據(jù)寫(xiě)到磁盤(pán)(慢,安全) 
    everysec:表示每秒同步一次(折衷,默認(rèn)值)

    appendfsync everysec

21. 指定是否啟用虛擬內(nèi)存機(jī)制,默認(rèn)值為no,簡(jiǎn)單的介紹一下,VM機(jī)制將數(shù)據(jù)分頁(yè)存放,由Redis將訪問(wèn)量較少的頁(yè)即冷數(shù)據(jù)swap到磁盤(pán)上,訪問(wèn)多的頁(yè)面由磁盤(pán)自動(dòng)換出到內(nèi)存中(在后面的文章我會(huì)仔細(xì)分析Redis的VM機(jī)制)

     vm-enabled no

22. 虛擬內(nèi)存文件路徑,默認(rèn)值為/tmp/redis.swap,不可多個(gè)Redis實(shí)例共享

     vm-swap-file /tmp/redis.swap

23. 將所有大于vm-max-memory的數(shù)據(jù)存入虛擬內(nèi)存,無(wú)論vm-max-memory設(shè)置多小,所有索引數(shù)據(jù)都是內(nèi)存存儲(chǔ)的(Redis的索引數(shù)據(jù) 就是keys),也就是說(shuō),當(dāng)vm-max-memory設(shè)置為0的時(shí)候,其實(shí)是所有value都存在于磁盤(pán)。默認(rèn)值為0

     vm-max-memory 0

24. Redis swap文件分成了很多的page,一個(gè)對(duì)象可以保存在多個(gè)page上面,但一個(gè)page上不能被多個(gè)對(duì)象共享,vm-page-size是要根據(jù)存儲(chǔ)的 數(shù)據(jù)大小來(lái)設(shè)定的,作者建議如果存儲(chǔ)很多小對(duì)象,page大小最好設(shè)置為32或者64bytes;如果存儲(chǔ)很大大對(duì)象,則可以使用更大的page,如果不 確定,就使用默認(rèn)值

     vm-page-size 32

25. 設(shè)置swap文件中的page數(shù)量,由于頁(yè)表(一種表示頁(yè)面空閑或使用的bitmap)是在放在內(nèi)存中的,,在磁盤(pán)上每8個(gè)pages將消耗1byte的內(nèi)存。

     vm-pages 134217728

26. 設(shè)置訪問(wèn)swap文件的線程數(shù),最好不要超過(guò)機(jī)器的核數(shù),如果設(shè)置為0,那么所有對(duì)swap文件的操作都是串行的,可能會(huì)造成比較長(zhǎng)時(shí)間的延遲。默認(rèn)值為4

     vm-max-threads 4

27. 設(shè)置在向客戶端應(yīng)答時(shí),是否把較小的包合并為一個(gè)包發(fā)送,默認(rèn)為開(kāi)啟

    glueoutputbuf yes

28. 指定在超過(guò)一定的數(shù)量或者最大的元素超過(guò)某一臨界值時(shí),采用一種特殊的哈希算法

    hash-max-zipmap-entries 64

  hash-max-zipmap-value 512

29. 指定是否激活重置哈希,默認(rèn)為開(kāi)啟(后面在介紹Redis的哈希算法時(shí)具體介紹)

    activerehashing yes

30. 指定包含其它的配置文件,可以在同一主機(jī)上多個(gè)Redis實(shí)例之間使用同一份配置文件,而同時(shí)各個(gè)實(shí)例又擁有自己的特定配置文件

    include /path/to/local.conf


當(dāng)前標(biāo)題:CentOS6.7下Redis4.0.6安裝和Jedis2.8.1簡(jiǎn)單使用
網(wǎng)站路徑:http://www.5511xx.com/article/dhpeohd.html