Java教程

java中(Spring MVC )jedis的操作合集

本文主要是介绍java中(Spring MVC )jedis的操作合集,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

0.前言

项目中需要用到redis进行登陆信息的存储,项目框架是Spring MVC,目前已经集成了jedis了。这篇文章主要介绍jedis操作redis的一些基本操作。

注:jedis是redis的java客户端版本,是redis官方推荐的连接方式。

1.jedis的连接

如果你项目的单独的测试可以用下面的方式来连接。

 Jedis  redis = new Jedis ("127.0.0.1",6379);//连接redis     
 redis.auth("123456");//验证密码     

我的项目因为用下面的配置文件集成了:

  <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
        <constructor-arg name="poolConfig" ref="genericObjectPoolConfig"/>
        <constructor-arg name="host" value="${redis.host}"/>
        <constructor-arg name="port" value="${redis.port}"/>
        <constructor-arg name="timeout" value="${redis.timeout}"/>
        <constructor-arg name="password" value="${redis.password}"/>
    </bean>

所以在使用的时候只要导入

  @Autowired
    private JedisPool jedisPool;

然后在使用的地方使用下面代码就可以操作jedis了

 Jedis jedis = jedisPool.getResource();
2.jedis的操作字符串String
Jedis jedis = jedisPool.getResource(); jedis.set("user","admin"); String name= jedis.get("user");

可以一次性设置多个键值对

       jedis.mset("user","12345","pwd","654321");

如果某些键的值是数字的情况下,可以通过下面

       jedis.incr("user"); //对user字段进行加1操作
3.jedis操作Map

简单的业务需求一般来说只存取一个键值对就行,但是稍微复杂一点的可能需要存取一个简单对象。

Jedis jedis = jedisPool.getResource();   Map<String, String> map = new HashMap<String, String>(); map.put("name", "zhangsan"); map.put("age", "18"); map.put("tel", "13112345678");

可以通过下面的代码进行取的操作:

Jedis jedis = jedisPool.getResource();

        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "zhangsan");
        map.put("age", "18");
        map.put("tel", "13112345678");
        jedis.hmset("user",map);
        List<String> rsmap1 = jedis.hmget("user", "name");
        List<String> rsmap2 = jedis.hmget("user", "name","age","tel");

rsmap1 是取的user字段中的name的值。

rsmap2 是取的user字段中name、age、tel的值。

如下图,取出的数据是ArrayList类型

除此之外,还有其他操作:

jedis.hdel("user","name"); //删除某个键值对 jedis.hlen("user"); //返回key为user中的存放的所有值的个数 jedis.exists("user"); //是否存在key为user的记录 jedis.hkeys("user");//返回map对象中所有的key jedis.hvals("user");// 返回mapd对象中所有的value //循环输出 Iterator<String> iter=jedis.hkeys("user").iterator(); while (iter.hasNext()){ String key = iter.next(); System.out.println(key+":"+jedis.hmget("user",key)); }
4.jedis操作JSONobject
        JSONObject object = new JSONObject();
        object.put("name", "zhangsan");
        object.put("age", "18");
        object.put("tel", "13112345678");
        jedis.set("user",object.toString());

可以看到,存的时候以json的形式存到了redis中了。

取的时候用JSON.parseObject就行,像下面这样:

JSONObject object = new JSONObject(); object.put("name", "zhangsan"); object.put("age", "18"); object.put("tel", "13112345678"); jedis.set("user",object.toString()); //把object转换成string存进去。 JSONObject object1 = JSON.parseObject(jedis.get("user")); //取出数据,并用JSON工具转换成对象

可以看到,这样返回的可以操作object了。

5.jedis操作List

存放数据:

Jedis jedis = jedisPool.getResource();   //存放4条数据 jedis.lpush("user","admin"); jedis.lpush("user","test"); jedis.lpush("age","18"); jedis.lpush("tel","13112345678");

取数据:

   jedis.lrange("user",0,-1);

第一个参数是key,第二个参数是起始位置,第三个参数是结束位置,-1表示取所有的。

7.jedis操作JSONArray

上面的操作如果满足不了需求,可以用上面的JSONObject和JSONArray配合使用。

Jedis jedis = jedisPool.getResource(); JSONArray arr = new JSONArray(); JSONObject object1 = new JSONObject(); JSONObject object2 = new JSONObject(); object1.put("user","admin"); object1.put("pwd","123456"); arr.add(object1); object2.put("user","test"); object2.put("pwd","123456"); arr.add(object2); jedis.set("users",arr.toJSONString());

这个创建后就像下面这样。

取数据的话可以通过for循环取数据进行判断。

  Jedis jedis = jedisPool.getResource(); JSONArray arr = new JSONArray(); JSONObject object1 = new JSONObject(); JSONObject object2 = new JSONObject(); object1.put("user","admin"); object1.put("pwd","123456"); arr.add(object1); object2.put("user","test"); object2.put("pwd","123456"); arr.add(object2); jedis.set("users",arr.toJSONString());   //取出 String result = jedis.get("users"); //取出 JSONArray res = JSONArray.parseArray(result);   for(int i=0;i<res.size();i++){ JSONObject obj = (JSONObject) res.get(i); obj.get("user"); //读取某个对象 user键值 obj.get("pwd"); //读取某个对象的 pwd键值 }
这篇关于java中(Spring MVC )jedis的操作合集的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!