blog

WindowsにRedisをインストールして使う

Redisは、memcachedのようなキー/バリュー・ストレージの不足を補うキーバリュー・ストレージ・システムであり、場合によってはリレーショナル・データベースの良い補完になります。この記事では、W...

Dec 1, 2013 · 7 min. read
シェア

Redisはキー・バリュー・ストレージ・システムです。Memcachedと似ていますが、文字列、リスト、セット、zset、ハッシュなど比較的多くの値型をサポートしており、プッシュ/ポップ、追加/削除、交差、和集合、差分などをサポートしています。これらはすべてアトミックです。その上、redisは様々な方法でソートをサポートしています。memcachedのように、データは効率化のためにメモリにキャッシュされます。違いは、redisは定期的にディスクに更新を書き込んだり、追加されたログファイルに変更を書き込んだり、その上にマスター・スレーブを実装していることです。

序文

Redisのインストール

公式サイト

公式ダウンロード: あなたのニーズに応じて異なるバージョンをダウンロードすることができます。

Windowsバージョンdownload

githubのリソースはZIPから直接ダウンロードできます。

After downloading, you can right-click and extract it to a hard drive such as D:\Redis edis-2.6.

D:◆Redis◆redis-2.6◆bin◆releaseの下に、32ビットと64ビットの2つのzipパッケージがあります。

Windowsのビットによっては、D:◆Redis◆Redis-2.6のルートディレクトリに解凍してください。

2.Redisの起動

redisディレクトリに移動し、サービスを開始します。

redis-server.exe redis.conf 

このウィンドウは開いたままにしておいてください。 ウィンドウが閉じると、redisサービスは自動的にシャットダウンされます。

redisは自動的にデータをハードディスクに保存するので、2回目の起動時にディスクからロードされたDBが1つ追加されたことになります。

3.テスト使用

別のコマンドラインウィンドウを開き、redisディレクトリに移動します。

redis-cli.exe -h 192. -p 6379 

4.Java開発キット ジェディス

ジェディス

1<!--Redis --> 
2<dependency> 
3<groupId>redis.clients</groupId> 
4<artifactId>jedis</artifactId> 
5<version>2.0.0</version> 
6<type>jar</type> 
7<scope>compile</scope> 
8</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.");  
jedis = pool.getResource(); 
//   jedis.auth("password"); 
} 
@Test 
public void testGet(){ 
System.out.println(jedis.get("lu")); 
} 
/** 
* Redisプライマリ文字列を保存する 
* CRUD 
*/ 
@Test 
public void testBasicString(){ 
//-----データを追加する ---------- 
jedis.set("name","minxr");//キーに--。>name値を>minxr 
System.out.println(jedis.get("name"));//結果: minxr 
//-----データを変更する ----------- 
//原文の変更点 
jedis.append("name","jarorwar");   //很直观,类似map 将jarorwar append到已经有的value之后 
System.out.println(jedis.get("name"));//実行結果:minxrjarorwar  
//元のデータを直接上書きする 
jedis.set("name","Min Xiaorong"); 
System.out.println(jedis.get("name"));//結果:Min Xiaorong 
//キーに対応するレコードを削除する 
jedis.del("name"); 
System.out.println(jedis.get("name"));//結果:null     
/** 
* msetこれは 
* jedis.set("name","minxr"); 
* jedis.set("jarorwar","Min Xiaorong"); 
*/ 
jedis.mset("name","minxr","jarorwar","Min Xiaorong");            
System.out.println(jedis.mget("name","jarorwar"));  
} 
/** 
* jedisマップを操作する 
*/ 
@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から名前を取り出して実行する。:[minxr]-->結果は一般的なリストであることに注意 
//***最初のパラメータはredis内のマップ・オブジェクトのキーで、その後に複数のキーが続くこともあり、可変パラメータとなっている。 
List<String> rsmap = jedis.hmget("user", "name"); 
System.out.println(rsmap);  
//マップのキーを削除する 
//        jedis.hdel("user","pwd"); 
System.out.println(jedis.hmget("user", "pwd")); //削除されたのでnullを返す。 
System.out.println(jedis.hlen("user")); //キー user1 に格納されている値の数を返す 
System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true 
System.out.println(jedis.hkeys("user"));//マップ・オブジェクトのすべてのキーを返す  [pwd, name] 
System.out.println(jedis.hvals("user"));//mapオブジェクトのすべての値を返す。  [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リストを操作する 
*/ 
@Test 
public void testList(){ 
//始める前にすべてを削除する 
jedis.del("java framework"); 
System.out.println(jedis.lrange("java framework",0,-1)); 
//先向key java framework中存放三条数据 
jedis.lpush("java framework","spring"); 
jedis.lpush("java framework","struts"); 
jedis.lpush("java framework","hibernate"); 
//そして、すべてのデータをjedisから取り出す。.lrangeが範囲外に取り出される, 
// ***1番目はキー、2番目は開始位置、3番目は終了位置である。,jedis.llen获取长度 -1表示取得所有 
System.out.println(jedis.lrange("java framework",0,-1)); 
} 
/** 
* jedis操作セット 
*/ 
@Test 
public void testSet(){ 
//  
jedis.sadd("sname","minxr"); 
jedis.sadd("sname","jarorwar"); 
jedis.sadd("sname","Min Xiaorong"); 
jedis.sadd("sanme","noname"); 
//nonameを削除する 
jedis.srem("sname","noname"); 
System.out.println(jedis.smembers("sname"));//すべての結合の値を取得する 
System.out.println(jedis.sismember("sname", "minxr"));//判断 minxr 是否是sname集合的元素 
System.out.println(jedis.srandmember("sname")); 
System.out.println(jedis.scard("sname"));//コレクション内の要素数を返す 
}     
@Test 
public void test() throws InterruptedException { 
//keysワイルドカードを使って 
 System.out.println(jedis.keys("*")); //現在のライブラリにあるすべてのキーを返す  [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand] 
System.out.println(jedis.keys("*name"));//返される名前   [sname, name] 
System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象  删除成功返回1 删除失败(或者不存在)返回 0 
System.out.println(jedis.ttl("sname"));//与えられたキーの有効時間を返す。もし-1なら、それは常に有効。 
jedis.setex("timekey", 10, "min");//通过此方法,可以指定key的存活(有效时间) 时间为秒 
Thread.sleep(5000);//5秒間のスリープの後、残りの時間は<=5 
System.out.println(jedis.ttl("timekey"));   //出力は5 
jedis.setex("timekey", 1, "min");        //に設定した後、以下を見ると残り時間が1になっている。 
System.out.println(jedis.ttl("timekey"));  //出力は1 
System.out.println(jedis.exists("key"));//检查key是否存在             System.out.println(jedis.rename("timekey","time")); 
System.out.println(jedis.get("timekey"));//削除されたのでnullを返す 
System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min 
//jedis   
//ここでのrpushとlpushはList操作であることに注意。これは双方向リンク・テーブルだ。 
jedis.del("a");//まずデータを消去し、テスト用に追加する。 
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]  //ソートされた結果を入力する 
System.out.println(jedis.lrange("a",0,-1)); 
} 
} 

Redisは定期的にデータをハードディスクに保存します。

Read next

ディズニー、モバイルとオンライン視聴をサポートするクラウド映画サービスを開始

ウォルト・ディズニー・カンパニーは、ディズニー、ピクサー、マーベルなどのスタジオの映画をオンラインで購入・視聴し、購入した映画をクラウドに保存して後で見ることができる、消費者向けのクラウドベースの映画サービス、ディズニー・ムービーズ・エニウェアをリリースしました。

Nov 30, 2013 · 2 min read