JAVA操作Redis
~~~
public static void testping()
{
// 創建jedis對象,如果不寫端口,默認6379端口
Jedis jedis = new Jedis("10.25.39.153",6379);
// 驗證密碼,如果沒有密碼,這句話不寫
jedis.auth("wtrotks");
//ping
System.out.println(jedis.ping());
}
public static void testString()
{
// 創建jedis對象,如果不寫端口,默認6379端口
Jedis jedis = new Jedis("10.25.39.131",6379);
// 驗證密碼,如果沒有密碼,這句話不寫
jedis.auth("123");
jedis.set("likecount", "100");
jedis.incr("likecount");
System.out.println(jedis.get("likecount"));
}
public static void testHash()
{
// 創建jedis對象,如果不寫端口,默認6379端口
Jedis jedis = new Jedis("10.25.39.131",6379);
// 驗證密碼,如果沒有密碼,這句話不寫
jedis.auth("123");
Map<String, String> m = new HashMap<>();
m.put("name", "feiyy");
m.put("pass", "feiyy");
m.put("age", "35");
jedis.hmset("feiyy001", m);
jedis.hset("feiyy001", "email", "feiyy@neusoft.com");
Set<String> keys = jedis.hkeys("feiyy001");
for(String key :keys)
{
System.out.println(key);
}
System.out.println("====================");
List<String> values = jedis.hvals("feiyy001");
for(String value :values)
{
System.out.println(value);
}
System.out.println("====================");
Map<String, String> items = jedis.hgetAll("feiyy001");
Set<Entry<String,String>> entries = items.entrySet();
for(Entry entry :entries)
{
System.out.println(entry.getKey()+"=="+entry.getValue());
}
}
public static void testList()
{
// 創建jedis對象,如果不寫端口,默認6379端口
Jedis jedis = new Jedis("10.25.39.153",6379);
// 驗證密碼,如果沒有密碼,這句話不寫
jedis.auth("wtrotks");
jedis.lpush("imgurls", "aa.jpg");
jedis.lpush("imgurls", "bb.jpg");
jedis.lpush("imgurls", "cc.jpg");
jedis.lpush("imgurls", "dd.jpg");
jedis.ltrim("imgurls", 0, 2);
List<String> list = jedis.lrange("imgurls", 0, -1);
for(String item :list)
{
System.out.println(item);
}
}
public static void testSet()
{
// 創建jedis對象,如果不寫端口,默認6379端口
Jedis jedis = new Jedis("10.25.39.153",6379);
// 驗證密碼,如果沒有密碼,這句話不寫
jedis.auth("wtrotks");
jedis.sadd("userlist", "james");
jedis.sadd("userlist", "jerry");
jedis.sadd("userlist", "kelly");
Set<String> users = jedis.smembers("userlist");
for(String s:users)
{
System.out.println(s);
}
System.out.println(jedis.scard("userlist"));
}
public static void testSortedSet()
{
// 創建jedis對象,如果不寫端口,默認6379端口
Jedis jedis = new Jedis("10.25.39.153",6379);
// 驗證密碼,如果沒有密碼,這句話不寫
jedis.auth("wtrotks");
Map<String, Double> m = new HashMap<>();
m.put("movie1", 6.0);
m.put("movie2", 9.8);
m.put("movie3", 7.6);
m.put("movie4", 7.4);
jedis.zadd("movies", m);
Set<String> movies = jedis.zrange("movies", 0, -1);
for(String movie :movies)
{
System.out.println(movie);
}
System.out.println("=================");
Set<String> movies2 = jedis.zrangeByScore("movies", 7.5, 10);
for(String movie :movies2)
{
System.out.println(movie);
}
System.out.println("=================");
Set<String> movies3 = jedis.zrevrange("movies", 0, 2);
for(String movie :movies3)
{
System.out.println(movie);
}
}
~~~
Spring集成Redis
~~~
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大連接數 -->
<property name="maxTotal" value="30" />
<!-- 最大空閑連接數 -->
<property name="maxIdle" value="10" />
<!-- 獲取連接時的最大等待毫秒數,小于零:阻塞不確定的時間,默認-1 -->
<property name="maxWaitMillis" value="1500" />
<!-- 在獲取連接的時候檢查有效性, 默認false -->
<!-- <property name="testOnBorrow" value="true" /> -->
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="timeout" value="6000"></constructor-arg>
<constructor-arg name="host" value="10.25.39.132"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
<constructor-arg name="password" value="123"></constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
</bean>
~~~
~~~
public void testSpringJedisSingle() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool");
Jedis jedis = pool.getResource();
String string = jedis.get("key1");
System.out.println(string);
jedis.close();
pool.close();
}
~~~
或者在service中依賴注入:
~~~
@Autowired
private JedisPool jedisPool;
~~~
有時候我們會把對象轉化為json字符串存儲到redis, 從redis中取出時再轉回對象,可以將這一功能封裝成工具類RedisTool.
~~~
package com.neusoft.tools;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
@Service
public class RedisTool {
@Autowired
private JedisPool jedisPool;
private Jedis jedis;
private Gson gson = new Gson();
public void saveObject(String key, Object object) {
jedis = jedisPool.getResource();
String objectString = gson.toJson(object);
jedis.set(key, objectString);
jedis.close();
}
public void deleteObject(String key) {
jedis = jedisPool.getResource();
jedis.del(key);
jedis.close();
}
public <T> T getObject(String key,Class<T> theClass) {
jedis = jedisPool.getResource();
String value = jedis.get(key);
jedis.close();
if(null!=value)
return gson.fromJson(value, theClass);
else
return null;
}
public <T> List<T> getObjectList(String key, Class<T> theClass){
jedis = jedisPool.getResource();
String listString = jedis.get(key);
if(null!=listString) {
List<T> listObject = gson.fromJson(listString, new TypeToken<List<T>>() {}.getType());
return listObject;
}else
return null;
}
}
~~~
- 第一章 Linux
- 1. Linux安裝和網絡配置
- 2. Linux基本命令
- 3. Xshell和winscp
- 4. VIM編輯器
- 5. 安裝軟件
- 5.1 安裝JDK
- 5.2 安裝TOMCAT
- 5.3 安裝MySql
- 5.4 安裝Nginx
- 5.5 部署工程
- 第二章 Nginx
- 1. 安裝Nginx
- 2. 配置Nginx
- 2.1 配置靜態服務器
- 2.2 配置反向代理
- 2.3 配置負載均衡
- 2.4 配置動靜分離
- 2.5 跨域訪問
- 第三章 Redis
- 1. 安裝Redis
- 2. JAVA操作Redis
- 3. Redis事務
- 4. Redis持久化
- 5. 主從復制和集群
- 6. Redis實現Session共享
- 第四章 MySQL主從復制
- 4.1 MyCat安裝
- 4.2 MySQL主從復制
- 4.3MySQL讀寫分離
- 第五章 ActiveMQ
- 5.1 Queue
- 5.2 Topic
- 第六章 FastDFS圖片服務器
- 第七章