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は定期的にデータをハードディスクに保存します。





