import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import redis.clients.jedis.*;
public class Welcome extends HttpServlet
{
Jedis jedis;

public void init(ServletConfig sc) throws ServletException
{

        Jedis jedis = new Jedis("localhost");
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
int count=0;
PrintWriter out=response.getWriter();
jedis.set("k1","123");//This statement is not working
}
public void destroy(){}
}

我一直在尝试使用绝地武士访问redis中的密钥及其值。它使用正常的Java代码工作正常。但是当涉及到servlets时,它不起作用。我找不到原因。请详细回答我如何在servlets中使用jedis.set()。

最佳答案

即使如此,我们也不应该使用jedis对象作为实例变量,因为线程安全。相反,我们通过实现ContextListener或资源注入在ServletContext中使用连接对象。我认为在使用servlet实例时,我们总是考虑线程安全。一个绝地武士的实例不是线程安全的!或者;用绝地武士。它是线程安全的。
jedispool pool=new jedispool(new jedispoolconfig(),“本地主机”);

关于servlets - servlet中的jedis用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28539269/

10-11 14:42