下載rdis文件 redis-3.0.7.tar.gz
redis安裝
- 在虛擬機創建redis文件夾
mkdir –p /usr/local/src/redis
- 進入文件夾
cd /usr/local/src/redis
- 通過Xhell傳輸redis到虛擬機中,或者通過CentOS tools可以直接拖拽文件到虛擬機的制定位置
- 解壓 redis文件
tar xzf redis-3.0.7.tar.gz
- 解壓完畢後,進入redis-3.0.7文件夾
cd redis-3.0.7
- 文件需進行編譯
make
進行安裝
make install
在實際安裝中,Xhell與CentOS連接無論如何都不能進行連接,後來經過排查,發現是沒有開啓22的端口,
端口的開啓在下文會有介紹。
**
redis服務配置
**
1.修改配置文件
配置文件:redis.conf
設置模式
vi redis.conf
daemonize yes #默認爲no
端口配置:
默認6379,一般無需修改
配置數據庫數量:
Redis默認開啓16個數據庫,不能像mysql自定義數據庫名稱,只能是數值,不能修改。
配置內存大小:
會生成一個和內存大小一樣的文件。
maxmemory 200mb 在真實環境必須部署,否則物理內存會被耗盡。一般配置200mb/500mb/1gb/2gb。可以分散到多臺服務器,和其它業務共享服務器,以充分利用資源。同時因爲分散,防止單點故障,造成大量緩存失效。
maxmemory 200mb 在364行,必須設置。
redis啓動
redis-server有兩種方式啓動,一般我習慣於在redis文件夾運行這個命令,在其他地方運行是否可以 還尚未嘗試
redis-server #默認找redis.conf配置文件
redis-server redis6380.conf #指定配置文件,這樣可以啓動多個實例
redis-cli通樣也有兩種方式,在一個系統運行多個redis實例時,我們通常 只需制定端口號 如
redis-cli -p 6380
redi-cli命令運行後
執行ping命令,
如果出現pong,那麼 說明服務已成功開啓
默認連接:IP 127.0.0.1 端口 6379
redis-cli
指定IP端口:
redis-cli –h 127.0.0.1 –p 6379
使用ping命令測試與客戶端和服務器鏈接是否正常
redis-cli ping
redis在一個物理節點啓動兩個實例
cd /usr/local/src/redis/redis-3.0.7
複製redis的配置文件,並命名爲redis6380
cp redis.conf redis6380.conf
將redis6380文件中的端口改爲6380
redis端口的修改
配置防火牆,開啓80端口、3306端口
CentOS 7 默認使用firewalld來管理iptables規則,由於防火牆規則變動的情況很少,動不動態變得無所謂了。但是習慣是魔鬼,跟之前不一樣,總是感覺不太習慣。
systemctl disable firewalld
yum remove firewalld -y
使用下面的辦法來恢復原來的習慣,同時解決iptables開機啓動的問題。
yum install iptables-services -y
systemctl enable iptables
這樣的話,iptables服務會開機啓動,自動從/etc/sysconfig/iptables 文件導入規則。
爲了讓/etc/init.d/iptables save 這條命令生效,需要這麼做
cp /usr/libexec/iptables/iptables.init /etc/init.d/iptables
/etc/init.d/iptables save
而chkconfig iptables 命令會自動重定向到sytemctl enable iptables
打開3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save #修改生效
/etc/init.d/iptables status #查看配置
參考 http://blog.csdn.net/czmchen/article/details/46389801
http://blog.csdn.net/zp1996323/article/details/52336851
**
Jedis連接Redis
簡單的連接,可用作測試是否連接成功
@Test
public void test(){
//創建Jedis對象
Jedis jedis=new Jedis("192.168.58.128",6379);
String r=jedis.get("a6688");
System.out.println(r);
jedis.close();
}
連接失敗,一般來說都應該先檢查redis的端口是否已經開啓。
/etc/init.d/iptables status
總共開啓了兩個虛擬機,其中一個虛擬機開啓了兩個redis實例。
@Test //池化
public void shared(){
//構造一個池的配置對象
JedisPoolConfig poolConfig=new JedisPoolConfig();
poolConfig.setMaxTotal(200);
//存儲配置的信息
List<JedisShardInfo> listInfo=new ArrayList<JedisShardInfo>();
JedisShardInfo info1=new JedisShardInfo("192.168.58.129", 6379);
listInfo.add(info1);
JedisShardInfo info2=new JedisShardInfo("192.168.58.129", 6380);
listInfo.add(info2);
JedisShardInfo info3=new JedisShardInfo("192.168.58.128", 6379);
listInfo.add(info3);
ShardedJedisPool pool=new ShardedJedisPool(poolConfig, listInfo);
ShardedJedis jedis=pool.getResource();
for(int i=0;i<10000;i++){
jedis.set("a"+i,"i");
}
// String r=jedis.get("a");
// System.out.println(r);
jedis.close();
}