Redisスタンドアロン版と擬似クラスタのインストールおよびjedisの使用
12450 ワード
一、据付
ダウンロード
ダウンロード:http://download.redis.io/releases/redis-3.0.0.tar.gz
GCCのインストール(Ubuntu 16.0.4環境)
sudo apt-get install gcc-4.8
参照先:download.redis.io/releases/redis-3.0.0.tar.gz
3、インストール私は/usr/local/ではなく/optディレクトリの下にソフトウェアをインストールするのが好きです.redisディレクトリの作成:cd/opt sudo mkdir redisこのsudo cp~/ダウンロード/redis-3.0にredisインストールパッケージをコピーする.0.tar.gz/opt/redis解凍:lxj@Lenovo:/opt/redis$ sudo tar -zxvf redis-3.0.0.tar.gzコンパイル:
redisディレクトリにインストール:
バックエンド起動:
ファイルの下にあるredisを解凍します.confをbinディレクトリにコピー
lxj@Lenovo:/opt/redis/redis-3.0.0$ sudo cp redis.conf/opt/redis/bin/
redisを変更します.confの権限lxj@Lenovo:/opt/redis/bin$ chmod 777 redis.conf編集daemonize yesをyesに設定すると、バックエンド起動バックエンド起動をサポートします.lxj@Lenovo:/opt/redis/bin$ ./redis-server redis.conf redisプロセスの表示:ps-aux|grep redis
閉じる:./bin/redis-cli shutdown
redisでよく使用されるコマンド:
データ型:String、Hash、List、set、treeset用のStringが一番多い!Set str 1234 get str incr stこれなしでデフォルトの値は1で、使用するたびに1が加算されます
decr stマイナス1
keyの有効期間の設定:expire str 100 ttl keyの有効期間を表示-1永続保存-2は存在しません
keys*redisに何個のkeyがあるかを確認します.
二、Jedisクライアント使用
maven依存の追加
三、redis擬似クラスタ構築
ビルド
1、クラスタディレクトリsudo mkdir clusterを作成し、状況によって権限を変更するかどうかを確認する
2、binディレクトリの下のファイルをコピーする
3、ポートの変更、クラスタモードポートの設定7001-7006 cluster-enabled yes 4から、6つのredisインスタンスvim start-allを起動する.sh cd redis_01 ./redis-server redis.conf cd .. cd redis_02 ./redis-server redis.conf cd .. cd redis_03 ./redis-server redis.conf cd .. cd redis_04 ./redis-server redis.conf cd .. cd redis_05 ./redis-server redis.conf cd .. cd redis_06 ./redis-server redis.次にchmod+x start-all.sh実行権限の追加ruby実行環境sudo apt-get rubyインストール最新版rubyインストールRubygemsインストールhttps://rubygems.org/pages/download解凍、sudo ruby setup.rbはredisとrubyをインストールする口実Gem install redis--version 3.0.0注意:gem install redis--version 3.0.0失敗したら、gemのソースgem sources--removeを修正する必要があります.https://rubygems.org/gem sources -a https://ruby.taobao.org/しかし、私はredis-3.0を直接ダウンロードすることに成功しませんでした.0.gem sudo gem install redis-3.0.0.gem-rwxrwxr-x 1 root root 48141 4月1 2015 redis-trib.rb*スクリプトコマンドを実行する./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006とは、ノードごとにバックアップマシンUsing 3 masters:127.0があることを意味する.0.1:7001127.0.0.1:7002127.0.0.1:7003Adding replica 127.0.0.1:7004 to 127.0.0.1:7001Adding replica 127.0.0.1:7005 to 127.0.0.1:7002Adding replica 127.0.0.1:7006 to 127.0.0.1:7003M: 738265181aa908d53c2ffc3bbd3d47a7c6e1f418 127.0.0.1:7001 slots:0-5460 (5461 slots) masterM: ba6818a1ff315336fb3d87b8cd9c13b0fbe9768b 127.0.0.1:7002 slots:5461-10922 (5462 slots) masterM: 614cc5f5ba6eaef636f3e8a5bd2f507ef33487ba 127.0.0.1:7003 slots:10923-16383 (5461 slots) masterS: 70cbd4ec3a02f744a1fa347e0e5ca4e2e65ca64b 127.0.0.1:7004 replicates 738265181aa908d53c2ffc3bbd3d47a7c6e1f418S: 94ab07591b4e9741e71252187cb352cfd7dc6c99 127.0.0.1:7005 replicates ba6818a1ff315336fb3d87b8cd9c13b0fbe9768bS: 02f4525afb8dd6bf821de59b8c44327d91a9238b 127.0.0.1:7006 replicates 614cc5f5ba6eaef636f3e8a5bd2f507ef33487ba
ノードスロットから12が見えるかどうか
使用(スタンドアロン、接続プール、クラスタモード)
Spring関連構成(両方を1つ開ければよい)
テスト
ダウンロード
ダウンロード:http://download.redis.io/releases/redis-3.0.0.tar.gz
GCCのインストール(Ubuntu 16.0.4環境)
sudo apt-get install gcc-4.8
参照先:download.redis.io/releases/redis-3.0.0.tar.gz
3、インストール私は/usr/local/ではなく/optディレクトリの下にソフトウェアをインストールするのが好きです.redisディレクトリの作成:cd/opt sudo mkdir redisこのsudo cp~/ダウンロード/redis-3.0にredisインストールパッケージをコピーする.0.tar.gz/opt/redis解凍:lxj@Lenovo:/opt/redis$ sudo tar -zxvf redis-3.0.0.tar.gzコンパイル:
redisディレクトリにインストール:
バックエンド起動:
ファイルの下にあるredisを解凍します.confをbinディレクトリにコピー
lxj@Lenovo:/opt/redis/redis-3.0.0$ sudo cp redis.conf/opt/redis/bin/
redisを変更します.confの権限lxj@Lenovo:/opt/redis/bin$ chmod 777 redis.conf編集daemonize yesをyesに設定すると、バックエンド起動バックエンド起動をサポートします.lxj@Lenovo:/opt/redis/bin$ ./redis-server redis.conf redisプロセスの表示:ps-aux|grep redis
閉じる:./bin/redis-cli shutdown
redisでよく使用されるコマンド:
データ型:String、Hash、List、set、treeset用のStringが一番多い!Set str 1234 get str incr stこれなしでデフォルトの値は1で、使用するたびに1が加算されます
decr stマイナス1
keyの有効期間の設定:expire str 100 ttl keyの有効期間を表示-1永続保存-2は存在しません
keys*redisに何個のkeyがあるかを確認します.
二、Jedisクライアント使用
maven依存の追加
redis.clients
jedis
2.7.2
@Test
public void JedisTest() {
// Jedis , IP
Jedis jedis = new Jedis("127.0.0.1", 6379);
//
jedis.set("lier", "boolean");
System.out.println(jedis.get("lier"));
jedis.close();
}
public void JedisPoolTest() {
// jedis :
/*
* 1、
* 2、
* 3、
* 4、
* 。=
*/
JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);
Jedis jedis = jedisPool.getResource();
System.out.println(jedis.get("lier"));
jedis.close();
jedisPool.close();
}
三、redis擬似クラスタ構築
ビルド
1、クラスタディレクトリsudo mkdir clusterを作成し、状況によって権限を変更するかどうかを確認する
2、binディレクトリの下のファイルをコピーする
3、ポートの変更、クラスタモードポートの設定7001-7006 cluster-enabled yes 4から、6つのredisインスタンスvim start-allを起動する.sh cd redis_01 ./redis-server redis.conf cd .. cd redis_02 ./redis-server redis.conf cd .. cd redis_03 ./redis-server redis.conf cd .. cd redis_04 ./redis-server redis.conf cd .. cd redis_05 ./redis-server redis.conf cd .. cd redis_06 ./redis-server redis.次にchmod+x start-all.sh実行権限の追加ruby実行環境sudo apt-get rubyインストール最新版rubyインストールRubygemsインストールhttps://rubygems.org/pages/download解凍、sudo ruby setup.rbはredisとrubyをインストールする口実Gem install redis--version 3.0.0注意:gem install redis--version 3.0.0失敗したら、gemのソースgem sources--removeを修正する必要があります.https://rubygems.org/gem sources -a https://ruby.taobao.org/しかし、私はredis-3.0を直接ダウンロードすることに成功しませんでした.0.gem sudo gem install redis-3.0.0.gem-rwxrwxr-x 1 root root 48141 4月1 2015 redis-trib.rb*スクリプトコマンドを実行する./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006とは、ノードごとにバックアップマシンUsing 3 masters:127.0があることを意味する.0.1:7001127.0.0.1:7002127.0.0.1:7003Adding replica 127.0.0.1:7004 to 127.0.0.1:7001Adding replica 127.0.0.1:7005 to 127.0.0.1:7002Adding replica 127.0.0.1:7006 to 127.0.0.1:7003M: 738265181aa908d53c2ffc3bbd3d47a7c6e1f418 127.0.0.1:7001 slots:0-5460 (5461 slots) masterM: ba6818a1ff315336fb3d87b8cd9c13b0fbe9768b 127.0.0.1:7002 slots:5461-10922 (5462 slots) masterM: 614cc5f5ba6eaef636f3e8a5bd2f507ef33487ba 127.0.0.1:7003 slots:10923-16383 (5461 slots) masterS: 70cbd4ec3a02f744a1fa347e0e5ca4e2e65ca64b 127.0.0.1:7004 replicates 738265181aa908d53c2ffc3bbd3d47a7c6e1f418S: 94ab07591b4e9741e71252187cb352cfd7dc6c99 127.0.0.1:7005 replicates ba6818a1ff315336fb3d87b8cd9c13b0fbe9768bS: 02f4525afb8dd6bf821de59b8c44327d91a9238b 127.0.0.1:7006 replicates 614cc5f5ba6eaef636f3e8a5bd2f507ef33487ba
ノードスロットから12が見えるかどうか
使用(スタンドアロン、接続プール、クラスタモード)
+ :
package com.taotao.content.jedis;
public interface JedisClient {
String set(String key, String value);
String get(String key);
Boolean exists(String key);
Long expire(String key, int seconds);
Long ttl(String key);
Long incr(String key);
Long hset(String key, String field, String value);
String hget(String key, String field);
Long hdel(String key, String... field);
}
package com.taotao.content.jedis;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisCluster;
//
public class JedisClientCluster implements JedisClient {
@Autowired
private JedisCluster jedisCluster;
@Override
public String set(String key, String value) {
return jedisCluster.set(key, value);
}
@Override
public String get(String key) {
return jedisCluster.get(key);
}
@Override
public Boolean exists(String key) {
return jedisCluster.exists(key);
}
@Override
public Long expire(String key, int seconds) {
return jedisCluster.expire(key, seconds);
}
@Override
public Long ttl(String key) {
return jedisCluster.ttl(key);
}
@Override
public Long incr(String key) {
return jedisCluster.incr(key);
}
@Override
public Long hset(String key, String field, String value) {
return jedisCluster.hset(key, field, value);
}
@Override
public String hget(String key, String field) {
return jedisCluster.hget(key, field);
}
@Override
public Long hdel(String key, String... field) {
return jedisCluster.hdel(key, field);
}
}
package com.taotao.content.jedis;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
//
public class JedisClientPool implements JedisClient {
@Autowired
private JedisPool jedisPool;
@Override
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String result = jedis.set(key, value);
jedis.close();
return result;
}
@Override
public String get(String key) {
Jedis jedis = jedisPool.getResource();
String result = jedis.get(key);
jedis.close();
return result;
}
@Override
public Boolean exists(String key) {
Jedis jedis = jedisPool.getResource();
Boolean result = jedis.exists(key);
jedis.close();
return result;
}
@Override
public Long expire(String key, int seconds) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, seconds);
jedis.close();
return result;
}
@Override
public Long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
}
@Override
public Long incr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
}
@Override
public Long hset(String key, String field, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(key, field, value);
jedis.close();
return result;
}
@Override
public String hget(String key, String field) {
Jedis jedis = jedisPool.getResource();
String result = jedis.hget(key, field);
jedis.close();
return result;
}
@Override
public Long hdel(String key, String... field) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(key, field);
jedis.close();
return result;
}
}
Spring関連構成(両方を1つ開ければよい)
テスト
:
@Test
public void JedisClientTest() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:Spring/ApplicationConfig-redis.xml");
JedisClient clent=(JedisClient) ctx.getBean(JedisClient.class);
System.out.println(clent.get("name"));
}
トラフィックコードのキャッシュへの追加@Override
public List getTbContentsByContentCategory(Long contentCategoryId) {
// , , ,
//
List contents = null;
String ad1 = null;
try {
ad1 = jedisClient.hget(INDEX_CONTENT, contentCategoryId + "");
if (StringUtils.isNotEmpty(ad1)) {
contents = JsonUtils.jsonToList(ad1, TbContent.class);
return contents;
}
} catch (Exception e) {
e.printStackTrace();
}
TbContentExample contentExample = new TbContentExample();
Criteria criteria = contentExample.createCriteria();
criteria.andCategoryIdEqualTo(contentCategoryId);
contents = contentMapper.selectByExample(contentExample);
try {
jedisClient.hset(INDEX_CONTENT, contentCategoryId + "", JsonUtils.objectToJson(contents));
} catch (Exception e) {
e.printStackTrace();
}
return contents;
}
, ,