Redis windows安裝配置與Jedis訪問數據庫


Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日志型、Key-Value數據庫,並提供多種語言的API。它通常被稱為數據結構服務器,因為值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets)和有序集合(sorted sets)等類型。

     Redis支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。

這使得Redis可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。由於完全實現了發布/訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道並接收主服務器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。

 

1.1、相關網站

官網:redis.io

中文網:http://www.redis.net.cn/

github:https://github.com/MSOpenTech/redis

下載地址:https://github.com/MSOpenTech/redis/releases

三、安裝與配置Redis

3.1、下載最新版的Redis

打開redis在github上的網站:https://github.com/MSOpenTech/redis/releases,選擇下載最新版的Redis,寫該文字時最新版本是3.2.1版。

這里我們選擇下載手動安裝包Redis-x64-3.2.100.zip。如果是32位的可以下載源代碼后自己編譯出32位的版本,在https://github.com/dmajkic/redis/downloads可以下載到32的安裝文件,不過版本有點舊了。

3.2、添加環境變量

將下載后的安裝包解壓到磁盤中,最好是沒有中文路徑,沒有特殊字符的目錄下,比如:d:\redis目錄下。為了更加方便的使用Redis,可以添加環境變量,在“系統環境變量”中的“Path”變量下添加redis路徑,如下所示:

確定后啟動cmd,運行redis-server測試。

3.3、啟動服務器

在命令模式下運行:redis-server.exe redis.windows.conf,如果運行提示未找到conf文件,則把參數中的配置文件路徑加上,如:

啟動成功后會有一個字符界面,提示連接的端口號是:6379,請不要關閉該服務器,等待客戶端連接;這里也可以把redis作成windows服務,不過redis多數情況會在linux平台使用。

3.4、啟動客戶端

再用cmd開啟一個命令容器,輸入命令:redis-cli -h 127.0.0.1 -p 6379,執行成功后如下所示:

-h用於指定服務器位置,-p用於指定端口號;如果想改變該內容可以修改.conf文件。

3.5、測試並運行

添加數據:set <key> <value> 

獲得數據:get <key>

是否存在:exists <key>

刪除數據:del <key>

修改數據:set <key> <value>

幫助命令:help <命令名稱>

查找鍵:keys <名稱能配符>

設置過期時間:expire <key> <秒數>

刪除過期時間:persist <key> 

info
服務器基本信息

monitor

實時轉儲收到的請求

config get   ????
獲取服務器的參數配置

flushdb
清空當前數據庫

flushall
清除所有數據庫

 更多命令:http://doc.redisfans.com/

三、常用命令
    1)連接操作命令
    quit:關閉連接(connection)
    auth:簡單密碼認證
    help cmd: 查看cmd幫助,例如:help quit
    
    2)持久化
    save:將數據同步保存到磁盤
    bgsave:將數據異步保存到磁盤
    lastsave:返回上次成功將數據保存到磁盤的Unix時戳
    shundown:將數據同步保存到磁盤,然后關閉服務
    
    3)遠程服務控制
    info:提供服務器的信息和統計
    monitor:實時轉儲收到的請求
    slaveof:改變復制策略設置
    config:在運行時配置Redis服務器
    
    4)對value操作的命令
    exists(key):確認一個key是否存在
    del(key):刪除一個key
    type(key):返回值的類型
    keys(pattern):返回滿足給定pattern的所有key
    randomkey:隨機返回key空間的一個
    keyrename(oldname, newname):重命名key
    dbsize:返回當前數據庫中key的數目
    expire:設定一個key的活動時間(s)
    ttl:獲得一個key的活動時間
    select(index):按索引查詢
    move(key, dbindex):移動當前數據庫中的key到dbindex數據庫
    flushdb:刪除當前選擇數據庫中的所有key
    flushall:刪除所有數據庫中的所有key
    
    5)String
    set(key, value):給數據庫中名稱為key的string賦予值value
    get(key):返回數據庫中名稱為key的string的value
    getset(key, value):給名稱為key的string賦予上一次的value
    mget(key1, key2,…, key N):返回庫中多個string的value
    setnx(key, value):添加string,名稱為key,值為value
    setex(key, time, value):向庫中添加string,設定過期時間time
    mset(key N, value N):批量設置多個string的值
    msetnx(key N, value N):如果所有名稱為key i的string都不存在
    incr(key):名稱為key的string增1操作
    incrby(key, integer):名稱為key的string增加integer
    decr(key):名稱為key的string減1操作
    decrby(key, integer):名稱為key的string減少integer
    append(key, value):名稱為key的string的值附加value
    substr(key, start, end):返回名稱為key的string的value的子串
    
    6)List 
    rpush(key, value):在名稱為key的list尾添加一個值為value的元素
    lpush(key, value):在名稱為key的list頭添加一個值為value的 元素
    llen(key):返回名稱為key的list的長度
    lrange(key, start, end):返回名稱為key的list中start至end之間的元素
    ltrim(key, start, end):截取名稱為key的list
    lindex(key, index):返回名稱為key的list中index位置的元素
    lset(key, index, value):給名稱為key的list中index位置的元素賦值
    lrem(key, count, value):刪除count個key的list中值為value的元素
    lpop(key):返回並刪除名稱為key的list中的首元素
    rpop(key):返回並刪除名稱為key的list中的尾元素
    blpop(key1, key2,… key N, timeout):lpop命令的block版本。
    brpop(key1, key2,… key N, timeout):rpop的block版本。
    rpoplpush(srckey, dstkey):返回並刪除名稱為srckey的list的尾元素,並將該元素添加到名稱為dstkey的list的頭部

 

    7)Set
    
sadd(key, member):向名稱為key的set中添加元素member
    srem(key, member) :刪除名稱為key的set中的元素member
    spop(key) :隨機返回並刪除名稱為key的set中一個元素
    smove(srckey, dstkey, member) :移到集合元素
    scard(key) :返回名稱為key的set的基數
    sismember(key, member) :member是否是名稱為key的set的元素
    sinter(key1, key2,…key N) :求交集
    sinterstore(dstkey, (keys)) :求交集並將交集保存到dstkey的集合
    sunion(key1, (keys)) :求並集
    sunionstore(dstkey, (keys)) :求並集並將並集保存到dstkey的集合
    sdiff(key1, (keys)) :求差集
    sdiffstore(dstkey, (keys)) :求差集並將差集保存到dstkey的集合
    smembers(key) :返回名稱為key的set的所有元素
    srandmember(key) :隨機返回名稱為key的set的一個元素
    
    
8)Hash
    hset(key, field, value):向名稱為key的hash中添加元素field
    hget(key, field):返回名稱為key的hash中field對應的value
    hmget(key, (fields)):返回名稱為key的hash中field i對應的value
    hmset(key, (fields)):向名稱為key的hash中添加元素field 
    hincrby(key, field, integer):將名稱為key的hash中field的value增加integer
    hexists(key, field):名稱為key的hash中是否存在鍵為field的域
    hdel(key, field):刪除名稱為key的hash中鍵為field的域
    hlen(key):返回名稱為key的hash中元素個數
    hkeys(key):返回名稱為key的hash中所有鍵
    hvals(key):返回名稱為key的hash中所有鍵對應的value
    hgetall(key):返回名稱為key的hash中所有的鍵(field)及其對應的value

3.6、添加windows服務

如果不添加windows服務,redis-server.exe程序一直要以GUI的形式開啟在任務欄,有時候不小心會被關閉,其實也可以像其它數據庫如Oracle一樣將redis做成一個服務,以服務的形式運行,注冊服務的方法如下:

3.6.1、在命令模式下切換到redis安裝目錄
3.6.2、執行指令如下命令:
redis-server --service-install redis.windows.conf --loglevel verbose  --service-name Redis
解釋:
--service-install redis.windows.conf 指定redis配置文件
--loglevel verbose  指定日志級別
--service-name Redis 指定服務名稱
運行命令后的結果:
 

 

四、使用Jedis訪問Redis數據庫

Jedis是redis的java版的客戶端實現,在java程序中我們可以通過Jedis訪問Redis數據庫,源代碼地址(https://github.com/xetorthio/jedis),實現訪問的方法如下:

4.1、引用或依賴Jedis包

4.1.1、如果使用Maven,修改pom.xml文件,添加Jedis的依賴,修改后的pom.xml文件如下:

復制代碼
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.zhangguo</groupId>
    <artifactId>JedisDemo</artifactId>
    <version>0.0.1</version>

    <dependencies>
        <!-- Jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.8.1</version>
        </dependency>
    </dependencies>

</project>
復制代碼

 引用成功后的結果:

從引用的結果可以發現jedis使用了commons的連接池技術

4.1.2、如果直接添加引用,可以去github下載jedis源碼包自行編譯,下載地址是:https://github.com/xetorthio/jedis/releases,當前最新版本2.8.1。

如果想直接下載jar包,可以到Maven共享資源庫(http://search.maven.org/)下載,如下所示:

4.2、調用Jedis

先開啟redis數據庫服務,處理監聽狀態,在java項目中編寫如下測試代碼:

復制代碼
package com.zhangguo.jedisdemo;

import redis.clients.jedis.Jedis;

public class HelloJedis {
    public static void main(String[] args) {
        //實例化一個jedis對象,連接到指定的服務器,指定連接端口號
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //將key為message的信息寫入redis數據庫中
        jedis.set("message", "Hello Redis!");
        //從數據庫中取出key為message的數據
        String value = jedis.get("message");
        System.out.println(value);
        //關閉連接
        jedis.close();
    }
}
復制代碼

運行結果:

 
 

================================================

我喜歡程序員,他們單純、固執、容易體會到成就感;面對壓力,能夠挑燈夜戰不眠不休;面對困難,能夠迎難而上挑戰自我。

他們也會感到困惑與傍徨,但每個程序員的心中都有一個比爾蓋茨或是喬布斯的夢想“用智慧開創屬於自己的事業”。

我想說的是,其實我是一個程序員。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM