redis是开发中一种高效存取的数据库技术,下面就看一下最简单的用java操作redis进行存取数据的操作`

public class RedisUtils {

    // 操作redis的客户端
    private static Jedis jedis = new Jedis("localhost", 6379);
    // 序列化工具类
    private static RuntimeSchema<User> schema = RuntimeSchema.createFrom(User.class);

    public static String put(User user){
        // 生成对应的数据库存储的键值
        String key = "name:" + user.getUsername();
        /*
            进行序列化操作得到字节数组
            user:要被序列化的对象
            LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE):缓冲区
            内部实现:schema.writeTo(output, message);
         */
        byte[] bytes =
                ProtostuffIOUtil.toByteArray(user, schema, LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE));
        // 存储键值
        String result = jedis.set(key.getBytes(), bytes);
        // 存储成功之后返回OK
        return result;
    }

    public static User get(String username){
        // 得到键的字节数组
        byte[] keyByte = ("name:" + username).getBytes();
        // 得到相应的值的字节数组
        byte[] bytes = jedis.get(keyByte);
        // 构建一个空的user对象
        User user = schema.newMessage();
        // 将值的字节数组反序列化操作存储到user对象中,内部:schema.mergeFrom(input, message);
        ProtostuffIOUtil.mergeFrom(bytes, user, schema);
        if(null != user){
            return user;
        }
        return null;
    }
}

工具类写完之后看一下简单的测试

public class RedisTest {

    @Test
    public void testPut(){
        User user = new User("张三", "123456");
        String result = RedisUtils.put(user);
        System.out.println(result);
    }

    @Test
    public void testGet(){
        User user = RedisUtils.get("张三");
        System.out.println(user);
    }
}

结果

OK
User{username='张三', password='123456'}

测试过程中两个需要注意的地方:

1.测试过程中redis服务器一定要开启,具体开启方法,进入redis目录下开启cmd,执行redis-server,注意中间是没有空格的。

2.测试需要的jar包

redis 命令 获取value redis如何获取数据_java