最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows下Redis的安裝使用圖解

 更新時間:2015年09月09日 16:51:33   投稿:lijiao  
Redis是一個key-value存儲系統(tǒng)。Redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲的不足,在部分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用。這篇文章小編為大家分享了在Windows下進(jìn)行安裝和使用Redis的技巧。

Redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave。

因?yàn)槭浅醮问褂茫允窃趙indows下進(jìn)行安裝和使用,參考了幾篇博客,下面整理一下:

1.安裝Redis

官方網(wǎng)站:http://redis.io/

官方下載:http://redis.io/download 可以根據(jù)需要下載不同版本

windows版:https://github.com/mythz/redis-windows

github的資源可以ZIP直接下載的(這個是給不知道的同學(xué)友情提示下)。

下載完成后 可以右鍵解壓到 某個硬盤下 比如D:\Redis\redis-2.6。

在D:\Redis\redis-2.6\bin\release下 有兩個zip包 一個32位一個64位。

根據(jù)自己windows的位數(shù) 解壓到D:\Redis\redis-2.6 根目錄下。

2.啟動Redis

進(jìn)入redis目錄后 開啟服務(wù)  (注意加上redis.conf)

redis-server.exe redis.conf
這個窗口要保持開啟  關(guān)閉時redis服務(wù)會自動關(guān)閉

redis會自動保存數(shù)據(jù)到硬盤 所以圖中是我第二次開啟時 多了一個 DB loaded from disk

3.測試使用

另外開啟一個命令行窗口 進(jìn)入redis目錄下 (注意修改自己的ip)

redis-cli.exe -h 192.168.10.61 -p 6379 

4.Java開發(fā)包Jedis

Jedis :Redis的官方首選Java開發(fā)包

<!--Redis --> 
<dependency> 
<groupId>redis.clients</groupId> 
<artifactId>jedis</artifactId> 
<version>2.0.0</version> 
<type>jar</type> 
<scope>compile</scope> 
</dependency> 
package com.lujianing.utils;   
import org.junit.Before; 
import org.junit.Test; 
import redis.clients.jedis.Jedis; 
import redis.clients.jedis.JedisPool; 
import redis.clients.jedis.JedisPoolConfig; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 
/** 
* Created by lujianing on 14-2-28. 
*/ 
public class JedisUtilTest { 
JedisPool pool; 
Jedis jedis; 
@Before 
public void setUp() { 
pool = new JedisPool(new JedisPoolConfig(), "192.168.10.61"); 
jedis = pool.getResource(); 
//  jedis.auth("password"); 
} 
@Test 
public void testGet(){ 
System.out.println(jedis.get("lu")); 
} 
/** 
* Redis存儲初級的字符串 
* CRUD 
*/ 
@Test 
public void testBasicString(){ 
//-----添加數(shù)據(jù)---------- 
jedis.set("name","minxr");//向key-->name中放入了value-->minxr 
System.out.println(jedis.get("name"));//執(zhí)行結(jié)果:minxr 
//-----修改數(shù)據(jù)----------- 
//1、在原來基礎(chǔ)上修改 
jedis.append("name","jarorwar");  //很直觀,類似map 將jarorwar append到已經(jīng)有的value之后 
System.out.println(jedis.get("name"));//執(zhí)行結(jié)果:minxrjarorwar 
//2、直接覆蓋原來的數(shù)據(jù) 
jedis.set("name","閔曉榮"); 
System.out.println(jedis.get("name"));//執(zhí)行結(jié)果:閔曉榮 
//刪除key對應(yīng)的記錄 
jedis.del("name"); 
System.out.println(jedis.get("name"));//執(zhí)行結(jié)果:null   
/** 
* mset相當(dāng)于 
* jedis.set("name","minxr"); 
* jedis.set("jarorwar","閔曉榮"); 
*/ 
jedis.mset("name","minxr","jarorwar","閔曉榮");      
System.out.println(jedis.mget("name","jarorwar")); 
} 
/** 
* jedis操作Map 
*/ 
@Test 
public void testMap(){ 
Map<String,String> user=new HashMap<String,String>(); 
user.put("name","minxr"); 
user.put("pwd","password"); 
jedis.hmset("user",user); 
//取出user中的name,執(zhí)行結(jié)果:[minxr]-->注意結(jié)果是一個泛型的List 
//第一個參數(shù)是存入redis中map對象的key,后面跟的是放入map中的對象的key,后面的key可以跟多個,是可變參數(shù) 
List<String> rsmap = jedis.hmget("user", "name"); 
System.out.println(rsmap); 
//刪除map中的某個鍵值 
//    jedis.hdel("user","pwd"); 
System.out.println(jedis.hmget("user", "pwd")); //因?yàn)閯h除了,所以返回的是null 
System.out.println(jedis.hlen("user")); //返回key為user的鍵中存放的值的個數(shù)1 
System.out.println(jedis.exists("user"));//是否存在key為user的記錄 返回true 
System.out.println(jedis.hkeys("user"));//返回map對象中的所有key [pwd, name] 
System.out.println(jedis.hvals("user"));//返回map對象中的所有value [minxr, password] 
Iterator<String> iter=jedis.hkeys("user").iterator(); 
while (iter.hasNext()){ 
String key = iter.next();        System.out.println(key+":"+jedis.hmget("user",key)); 
}   
} 
/** 
* jedis操作List 
*/ 
@Test 
public void testList(){ 
//開始前,先移除所有的內(nèi)容 
jedis.del("java framework"); 
System.out.println(jedis.lrange("java framework",0,-1)); 
//先向key java framework中存放三條數(shù)據(jù) 
jedis.lpush("java framework","spring"); 
jedis.lpush("java framework","struts"); 
jedis.lpush("java framework","hibernate"); 
//再取出所有數(shù)據(jù)jedis.lrange是按范圍取出, 
// 第一個是key,第二個是起始位置,第三個是結(jié)束位置,jedis.llen獲取長度 -1表示取得所有 
System.out.println(jedis.lrange("java framework",0,-1)); 
} 
/** 
* jedis操作Set 
*/ 
@Test 
public void testSet(){ 
//添加 
jedis.sadd("sname","minxr"); 
jedis.sadd("sname","jarorwar"); 
jedis.sadd("sname","閔曉榮"); 
jedis.sadd("sanme","noname"); 
//移除noname 
jedis.srem("sname","noname"); 
System.out.println(jedis.smembers("sname"));//獲取所有加入的value 
System.out.println(jedis.sismember("sname", "minxr"));//判斷 minxr 是否是sname集合的元素 
System.out.println(jedis.srandmember("sname")); 
System.out.println(jedis.scard("sname"));//返回集合的元素個數(shù) 
}   
@Test 
public void test() throws InterruptedException { 
//keys中傳入的可以用通配符 
 System.out.println(jedis.keys("*")); //返回當(dāng)前庫中所有的key [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand] 
System.out.println(jedis.keys("*name"));//返回的sname  [sname, name] 
System.out.println(jedis.del("sanmdde"));//刪除key為sanmdde的對象 刪除成功返回1 刪除失?。ɑ蛘卟淮嬖冢┓祷?0 
System.out.println(jedis.ttl("sname"));//返回給定key的有效時間,如果是-1則表示永遠(yuǎn)有效 
jedis.setex("timekey", 10, "min");//通過此方法,可以指定key的存活(有效時間) 時間為秒 
Thread.sleep(5000);//睡眠5秒后,剩余時間將為<=5 
System.out.println(jedis.ttl("timekey"));  //輸出結(jié)果為5 
jedis.setex("timekey", 1, "min");    //設(shè)為1后,下面再看剩余時間就是1了 
System.out.println(jedis.ttl("timekey")); //輸出結(jié)果為1 
System.out.println(jedis.exists("key"));//檢查key是否存在       System.out.println(jedis.rename("timekey","time")); 
System.out.println(jedis.get("timekey"));//因?yàn)橐瞥?,返回為null 
System.out.println(jedis.get("time")); //因?yàn)閷imekey 重命名為time 所以可以取得值 min 
//jedis 排序 
//注意,此處的rpush和lpush是List的操作。是一個雙向鏈表(但從表現(xiàn)來看的) 
jedis.del("a");//先清除數(shù)據(jù),再加入數(shù)據(jù)進(jìn)行測試 
jedis.rpush("a", "1"); 
jedis.lpush("a","6"); 
jedis.lpush("a","3"); 
jedis.lpush("a","9"); 
System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1] 
System.out.println(jedis.sort("a")); //[1, 3, 6, 9] //輸入排序后結(jié)果 
System.out.println(jedis.lrange("a",0,-1)); 
} 
} 

Redis會定時 保存數(shù)據(jù)到硬盤上

以上就是小編為大家分享的在Windows下進(jìn)行安裝和使用Redis的技巧,希望對大家熟練掌握Windows下Redis的安裝使用有所幫助。

相關(guān)文章

  • redis使用watch秒殺搶購實(shí)現(xiàn)思路

    redis使用watch秒殺搶購實(shí)現(xiàn)思路

    這篇文章主要為大家詳細(xì)介紹了redis使用watch秒殺搶購的實(shí)現(xiàn)思路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Redis數(shù)據(jù)一致性問題的三種解決方案

    Redis數(shù)據(jù)一致性問題的三種解決方案

    Redis(Remote?Dictionary?Server?),是一個高性能的基于Key-Value結(jié)構(gòu)存儲的NoSQL開源數(shù)據(jù)庫,大部分公司采用Redis來實(shí)現(xiàn)分布式緩存,用來提高數(shù)據(jù)查詢效率,本文就給大家介紹三種Redis數(shù)據(jù)一致性問題的解決方案,需要的朋友可以參考下
    2023-07-07
  • Redis實(shí)現(xiàn)用戶簽到的示例代碼

    Redis實(shí)現(xiàn)用戶簽到的示例代碼

    Redis的位圖可以高效實(shí)現(xiàn)用戶簽到功能,每個bit位對應(yīng)一個簽到狀態(tài),節(jié)省存儲空間,利用SETBIT、GETBIT等命令操作簽到數(shù)據(jù),可統(tǒng)計連續(xù)簽到天數(shù)和本月簽到情況,感興趣的可以了解一下
    2024-09-09
  • Redis節(jié)省內(nèi)存的十個技巧分享

    Redis節(jié)省內(nèi)存的十個技巧分享

    你是否在工作中遇到過Redis的bigkey導(dǎo)致的內(nèi)存占用嚴(yán)重、查詢耗時大大增加?同時bigKey還可能導(dǎo)致Redis實(shí)例的崩潰,因?yàn)閮?nèi)存不夠用了,所以本文給大家介紹了Redis極大節(jié)省內(nèi)存的10個技巧,需要的朋友可以參考下
    2024-04-04
  • Redis主從復(fù)制的原理分析

    Redis主從復(fù)制的原理分析

    Redis主從復(fù)制通過將數(shù)據(jù)鏡像到多個從節(jié)點(diǎn),實(shí)現(xiàn)高可用性和擴(kuò)展性,主從復(fù)制包括初次全量同步和增量同步兩個階段,為優(yōu)化復(fù)制性能,可以采用AOF持久化、調(diào)整復(fù)制超時時間、優(yōu)化網(wǎng)絡(luò)帶寬等措施,故障轉(zhuǎn)移機(jī)制依賴于Sentinel或Cluster組件
    2025-01-01
  • Redis過期時間的設(shè)計與實(shí)現(xiàn)代碼

    Redis過期時間的設(shè)計與實(shí)現(xiàn)代碼

    在?Redis?中,鍵的過期時間設(shè)計與實(shí)現(xiàn)是一個重要的功能,這使得?Redis?可以自動刪除在指定時間后不再需要的鍵,下面詳細(xì)介紹?Redis?過期時間的設(shè)計和實(shí)現(xiàn),包括設(shè)置過期時間、過期鍵的存儲結(jié)構(gòu)、過期鍵的刪除策略等,需要的朋友可以參考下
    2024-08-08
  • 淺談redis采用不同內(nèi)存分配器tcmalloc和jemalloc

    淺談redis采用不同內(nèi)存分配器tcmalloc和jemalloc

    下面小編就為大家?guī)硪黄獪\談redis采用不同內(nèi)存分配器tcmalloc和jemalloc。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Redis的五種基本類型和業(yè)務(wù)場景和使用方式

    Redis的五種基本類型和業(yè)務(wù)場景和使用方式

    Redis是一種高性能的鍵值存儲數(shù)據(jù)庫,支持多種數(shù)據(jù)結(jié)構(gòu)如字符串、列表、集合、哈希表和有序集合等,它提供豐富的API和持久化功能,適用于緩存、消息隊(duì)列、排行榜等多種場景,Redis能夠?qū)崿F(xiàn)高速讀寫操作,尤其適合需要快速響應(yīng)的應(yīng)用
    2024-10-10
  • redis的hash類型操作方法

    redis的hash類型操作方法

    Hash 是一個 String 類型的 field(字段) 和 value(值) 的映射表,hash 特別適合用于存儲對象,這篇文章主要介紹了redis的hash類型的詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Redis SETNX的實(shí)現(xiàn)示例

    Redis SETNX的實(shí)現(xiàn)示例

    SETNX是Redis提供的原子操作,用于在指定鍵不存在時設(shè)置鍵值,并返回操作結(jié)果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12

最新評論

鸡东县| 辛集市| 宣汉县| 南开区| 繁峙县| 文水县| 武邑县| 麦盖提县| 含山县| 龙海市| 安达市| 凤城市| 宁城县| 林周县| 焦作市| 汤原县| 乡宁县| 道孚县| 文成县| 北票市| 成都市| 哈尔滨市| 崇礼县| 神农架林区| 玛纳斯县| 泸水县| 太和县| 桓仁| 石棉县| 克山县| 荣成市| 吉隆县| 锦州市| 石首市| 布尔津县| 余江县| 视频| 宁德市| 红河县| 尤溪县| 营山县|