深入浅出Redis

7803 ワード

linuxでredisをインストールする
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

makeが完了するとredis-2.8.17ディレクトリの下にコンパイルされたredisサービスプログラムredis-serverが表示され、テスト用のクライアントプログラムredis-cliも表示されます.2つのプログラムはインストールディレクトリsrcディレクトリの下にあります.
次にredisサービスを起動し、起動パラメータを使用して指定したプロファイルを使用して次のコマンドで起動するようにredisに伝えることができます.
$ cd src
$ ./redis-server redis.conf

redis.confはデフォルトのプロファイルです.必要に応じて独自のプロファイルを使用できます.
redisサービスプロセスを開始すると、テストクライアントプログラムredis-cliとredisサービスインタラクションを使用できます.例:
$ cd src
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

redis起動方式(3種類)
1.redisルートへのアクセスを直接起動し、コマンドを実行する:#に'&'番号を付けてredis以降のプログラム方式を実行する
1
./redis-server redis.conf &

 2. プロファイルの により、/etc/redis/6379のような プロファイルをredisサービスに して することができる.confはredisルートディレクトリに り、コマンドを します.
1 . /redis-server   /etc/redis/6379 .conf
#ポートを した 、`redis-cli`クライアント を する は、 のようなポートを する があります.
1 redis-cli -p 6380
3.redis スクリプトを してPOSTを します(https://www.cnblogs.com/pqchao/p/6549510.html)
redis とパラメータ (https://www.cnblogs.com/chenmh/p/5121849.html):
は、 は2つのredisです.confファイル、confファイルから に を けます:redis_6380.conf、 にconfに :slaveeof 192.0.0.1 6379( )
redisスライスと スライスおよびアプリケーション(javaのreidsに する スライスと スライス プールの ):
スライスプールの な は、 にスライスプールを します.スライスプールは に プロジェクトに され、 Redisライブラリを します.Redisがどのライブラリに するかを す がある は、Redisを してデータ を う に、Jedis resource=jedisPoolという を します.getResource();   resource.select(1); select(1)は、 されたRedisライブラリの2 のライブラリ(1 は0)を します.
JAva redis (スライス プールを ):
mavenプロジェクトの け:
redis.clientsjedis2.1.0
1:redisを cfg.jsファイル:
importClass(com.util.RedisPool); var config = new RedisPool(); config.setMaxActive(20); config.setMaxIdle(5); config.setMaxWait(10000); config.setTestOnBorrow(false);config.add("192.168.1.1", 6379, "master"); config.start();var redisConnPool = config.getRedisConnPool();
2:RedisPool.java
public class RedisPool {private int maxActive;private int maxIdle;private int maxWait;private boolean testOnBorrow;ArrayList shards = new ArrayList();private ShardedJedisPool redisConnPool = null;public RedisPool(){}public void start(){JedisPoolConfig config = new JedisPoolConfig();config.setMaxActive(maxActive);config.setMaxIdle(maxIdle);config.setMaxWait(maxWait);config.setTestOnBorrow(testOnBorrow);redisConnPool = new ShardedJedisPool(config, shards);}public void add(String host, int port, String name){shards.add(new JedisShardInfo(host, port, name));}public ShardedJedisPool getRedisConnPool(){return redisConnPool;}public int getMaxActive() {return maxActive;}public void setMaxActive(int maxActive) {this.maxActive = maxActive;}public int getMaxIdle() {return maxIdle;}public void setMaxIdle(int maxIdle) {this.maxIdle = maxIdle;}public int getMaxWait() {return maxWait;}public void setMaxWait(int maxWait) {this.maxWait = maxWait;}public boolean isTestOnBorrow() {return testOnBorrow;}public void setTestOnBorrow(boolean testOnBorrow) {this.testOnBorrow = testOnBorrow;} }
3:ShardedJedisPoolの
ファイルの パス:redisCfg=Thread.class.getResource("/").getPath() + "redis_cfg.js";
ScriptEngineManagerによるredisConnPoolの
ShardedJedisPool redisConnPool = (ShardedJedisPool) ScriptEngine.getValue(redisCfg, "redisConnPool");
public static Object getValue(String filepath, String key) throws FileNotFoundException, ScriptException{ScriptEngineManager engineManager=new ScriptEngineManager();javax.script.ScriptEngine jsEngine = engineManager.getEngineByExtension("js");jsEngine.eval(new FileReader(new File(filepath)));return jsEngine.get(key);}
4: redis
public class RedisTest {public static void main(String[] args) {String redisCfg  = Thread.class.getResource("/").getPath() + "redis_cfg.js";ShardedJedisPool redisConnPool = null;ShardedJedis jedis = null;try {redisConnPool = (ShardedJedisPool) getValue(redisCfg, "redisConnPool");if (redisConnPool == null){System.out.println("..................");System.exit(1);}jedis = redisConnPool.getResource();synchronized(jedis){jedis.get("");//redisインタフェース }}catch(Exception e){e.printStackTrace();finally {if (redisConnPool != null) {redisConnPool.returnResource(jedis);}}}public static Object getValue(String filepath, String key) throws FileNotFoundException, ScriptException{ScriptEngineManager engineManager=new ScriptEngineManager();javax.script.ScriptEngine jsEngine = engineManager.getEngineByExtension("js");jsEngine.eval(new FileReader(new File(filepath)));return jsEngine.get(key);} }