没有redis,怎么搞(没找到redis)
在软件开发中,Redis已经广泛用于缓存和消息传递等,它为网站等提供了一个可供更新,高可用性数据存储集群。鉴于其极高的性能,在很多软件项目中都有使用该工具,而大多数时候,即使没有Redis也能解决缓存等问题。
那么,没有Redis,怎么搞?
可以使用内存来存储缓存数据,这可以大大降低使用者的访问成本,一般来说,使用内存比使用Redis性能更好,而且更加简单,如下代码所示:
import java.util.HashMap;
import java.util.Map; public class Test {
public static void mn(String[] args) { HashMap map = new HashMap();
map.put("key1", "value1"); map.put("key2", "value2");
map.put("key3", "value3"); Object obj = map.get("key1");
System.out.println(obj); }
}
当然,也可以使用关系型数据库作为存储介质,将数据写入关系型数据库中,但是这样比较繁琐,效率也低,永久存储类型可以充分利用SQL语句,如下代码所示:
import java.sql.*;
public class Test { public static void mn(String[] args) {
Connection conn=null; try {
Class.forName("oracle.jdbc.driver.OracleDriver"); conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","username","password");
Statement st=conn.createStatement(); ResultSet rs=st.executeQuery("select * from table_name");
while(rs.next()){ String key =rs.getString("name");
String value=rs.getString("age");; System.out.println(key+","+value);
} rs.close();
st.close(); conn.close();
} catch (Exception e) { e.printStackTrace();
System.out.println("连接失败!"); }
} }
此外,实现消息传递功能,可以使用Web服务或Socket连接,作为媒介,使用广泛的JAVA编程技术实现,例如:
//使用socket连接
ServerSocket ss=new ServerSocket(9000); while(true){
Socket socket=ss.accept(); new Thread(new Runnable(){
@Override public void run(){
//消息传递功能的实现 }
}).start(); }
// 使用jdk提供的webservice Map results=new Hashmap();
Endpoint.publish("localhost:8082/service/webservice/get",new GetWebservice(){ @Override
public Map getData() throws Exception{
return results; }
});
在没有Redis的情况下,还可以使用内存缓存、关系型数据存储以及Web服务、Socket等方式来实现数据缓存和消息传递功能。最终,选择Redis还是另外几种方式,要看业务需要考虑的因素,以及项目环境。