Redis 數據類型
Redis支持五種數據類型
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)。
redis作爲緩存最常用的類型
- string(字符串)
- hash(哈希)
最常用的方法
- set(字符串的設置值)
- get(字符串取值)
- del(字符串刪除key)
- expire(設置key的過期時間)
- ttl(查看key的當前還有多久過期)
- hset(hash的設置key及值)
- hget(hash的取值)
- hdel(刪除key)
- hexists(判斷某個key是否存在)
Redis單機的安裝
- 先安裝c語言的編譯環境 執行yum install gcc-c++
- 解壓縮Redis的壓縮包 tar zxf Redis
- 在解壓縮路徑下執行make命令
- 然後執行 make install -PREFIX 你要安裝的路徑
- 複製解壓目錄下的redis.conf到安裝路徑的bin文件下
- 默認啓動redis 使用命令 bin/redis-server.sh,如果要帶自定義的redis的配置文件 直接在後面跟配置文件redis.conf
- 如果需要後臺啓動 我們需要筆記redis.conf,修改daemonize 爲yes
Redis集羣安裝
- 單機版安裝了,我們只需要創建一個目錄 mkdir /usr/local/cluster
- 然後複製單機版的redis到cluster名字爲redis01,redis02,redis03,redis04,redis05,redis06(1個集羣,3個節點,一主一從)
- 然後修改redis.conf配置文件,如果在同一臺機器上需要修改他們的端口號,cluster-enabled屬性爲yes
- 然後需要安裝ruby的環境 yum install ruby ,yum install rubygems
- 安裝ruby運行的腳本 gem install redis-3.0.0.gem(redis-3.0.0.gem需要自己下載)
- 啓動所有的redis服務
- 進入redis-3.0.0/src目錄下 然後執行命令 ./redis-trib.rb create –replicas 1 redis01的地址 redis02的地址 redis03的地址 redis04的地址 redis05的地址 redis06的地址(例如 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006) 這個命令中1代表幾個備份機
Redis單機的操作(JAVA)
使用jedis操作redis
Jedis jedis = new Jedis(ip地址, 端口號);
String result = jedis.get("hello");
System.out.println(result);
jedis.close();
使用JedisPool操作redis
/ 第一步:創建一個JedisPool對象。需要指定服務端的ip及端口。
JedisPool jedisPool = new JedisPool("192.168.25.153", 6379);
// 第二步:從JedisPool中獲得Jedis對象。
Jedis jedis = jedisPool.getResource();
// 第三步:使用Jedis操作redis服務器。
jedis.set("jedis", "test");
String result = jedis.get("jedis");
//關閉jedis
jedis.close();
Redis集羣的操作(JAVA)
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.25.153", 7001));
nodes.add(new HostAndPort("192.168.25.153", 7002));
nodes.add(new HostAndPort("192.168.25.153", 7003));
nodes.add(new HostAndPort("192.168.25.153", 7004));
nodes.add(new HostAndPort("192.168.25.153", 7005));
nodes.add(new HostAndPort("192.168.25.153", 7006));
JedisCluster jedisCluster = new JedisCluster(nodes);
// 第二步:直接使用JedisCluster對象操作redis。在系統中單例存在。
jedisCluster.set("hello", "100");
String result = jedisCluster.get("hello");
// 第三步:打印結果
System.out.println(result);
// 第四步:系統關閉前,關閉JedisCluster對象。
jedisCluster.close();
Redis與Spring整合
單機版的配置
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
集羣版的配置
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg>
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7001"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7002"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7003"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7004"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7005"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7006"></constructor-arg>
</bean>
</set>
</constructor-arg>
</bean>