没有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还是另外几种方式,要看业务需要考虑的因素,以及项目环境。


数据运维技术 » 没有redis,怎么搞(没找到redis)