使用Redis+java(模仿数据库)实现对象存取和读取
实现前要引入Redis架包
maven项目
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>

一、创建类:User
package com.wbg.mr.entity;
public class User {
    String uid;
    String userName;
    String passWord;
    String name;
    public User() {
    }
    public User(String uid, String userName, String passWord, String name) {
        this.uid = uid;
        this.userName = userName;
        this.passWord = passWord;
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "id='" + uid + '\'' +
                ", userName='" + userName + '\'' +
                ", passWord='" + passWord + '\'' +
                ", name='" + name + '\'' +
                '}';
    }
    public String getUid() {
        return uid;
    }
    public void setUid(String uid) {
        this.uid = uid;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassWrod() {
        return passWord;
    }
    public void setPassWrod(String passWord) {
        this.passWord = passWord;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
二、创建UserDao类
package com.wbg.mr.dao; import com.wbg.mr.entity.User;
import redis.clients.jedis.Jedis; import java.util.*; public class UserDao {
private static Jedis jedis; public UserDao(Jedis jedis) {
this.jedis = jedis;
} /**
* 添加
*/
public void addUser(User user) {
//首先保存user-id
jedis.sadd("useradd", "user-" + user.getUid());
//-----添加数据----------
Map<String, String> map = new HashMap<String, String>();
map.put("uid", user.getUid());
map.put("userName", user.getUserName());
map.put("passWord", user.getPassWrod());
map.put("name", user.getName());
jedis.hmset("user-" + user.getUid(), map);
} /**
* 获取单个User
*
* @return
*/
public List<String> getById(String id) {
if (exists()) {
return jedis.hmget("user-" + id, "id", "userName", "passWord", "name");
}
return null;
}
/**
* 获取全部
*
* @return
*/
public List<User> listAll() {
List<User> list = new ArrayList<User>();
User user = null;
if (exists()) {
for (String useradd : jedis.smembers("useradd")) {
user = new User();
List<String> lists = jedis.hmget(useradd, "id", "userName", "passWord", "name");
user.setUid(lists.get(0));
user.setUserName(lists.get(1));
user.setPassWrod(lists.get(2));
user.setName(lists.get(3));
list.add(user);
}
return list;
}
return null;
} //删除全部
public boolean delAll() {
if (exists()) {
jedis.del("useradd");
return true;
}
return false;
} //判断是否存在
public boolean exists() {
return jedis.exists("useradd");
}
}
三、测试
public class Main {
    private static Jedis jedis =null;
    public static void main(String[] args) {
        //连接本地的 Redis 服务
         jedis = new Jedis("localhost");
        System.out.println("连接成功");
        //查看服务是否运行
        System.out.println("服务正在运行: "+jedis.ping());
        user();
    }
    public static void user(){
        UserDao user = new UserDao(jedis);
        user.delAll();
        user.addUser(new User("21","ldl","123456","刘地林"));
        user.addUser(new User("31","oyl","123456","欧一乐"));
        user.addUser(new User("41","tyj","123456","唐玉棋"));
        user.addUser(new User("51","cs","123456","陈胜"));
        user.addUser(new User("61","gsq","123456","郭世棋"));
        for (User user1 : user.listAll()) {
            System.out.println(user1);
        }
}
使用Redis+java(模仿数据库)实现对象存取和读取的更多相关文章
- Redis应用场景 及其数据对象 string hash list set sortedset
		
原文地址:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html Redis开创了一种新的数据存储思路,使用Redis,我们不用在 ...
 - Redis非关系型数据库
		
1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写. Redis一般作为分布式缓存框架.分布式下的SESSION分离.分布式锁的实现等等. Redis速度快的原因: ...
 - Spring+Redis集成+关系型数据库持久化
		
本篇文章主要介绍了"Spring+Redis集成+关系型数据库持久化",主要涉及到Spring+Redis集成+关系型数据库持久化方面的内容,对于Spring+Redis集成+关系 ...
 - Java开发各层对象专用名词含义 PO,VO,DAO,BO,DTO,POJO, BYO,Entity,JavaBean,JavaBeans
		
Java的几种名词(PO,VO,DAO,BO,POJO)解释 PO:persistant object 持久对象.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一 ...
 - Redis 非关系型数据库 ( Nosql )
		
简介: Redis 是一个开源的,高性能的 key-value 系统,可以用来缓存或存储数据. Redis 数据可以持久化,并且支持多种数据类型:字符串(string),列表(list),哈希(has ...
 - Redis 的底层数据结构(对象)
		
目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层.最常用的数据结构,相信你也掌握的不错. 但 redis 实际存储键值对的时候,是基于对 ...
 - java 用redisTemplate 的 Operations存取list集合
		
一 .存取为list类型 @RestController @RequestMapping("/test") @Slf4j public class TestController { ...
 - JAVA与数据库MySQL相连接
		
JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...
 - mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
		
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
 
随机推荐
- js为什么放到head中有时候失效
			
1.今天写js碰到一个奇怪的问题,写好的js放到body里面执行,但是放到head中没有任何效果,为什么导致这种原因呢? 看失效代码: <!DOCTYPE html PUBLIC "- ...
 - 【转】js判断一个object对象是否为空
			
判断一个对象是否为空对象,本文给出三种判断方法: 1.最常见的思路,for...in... 遍历属性,为真则为“非空数组”:否则为“空数组” for (var i in obj) { // 如果不为空 ...
 - react-native一些好的组件
			
一.移动端路由 react-navigator 二.移动端本地储存 react-native-storage(https://github.com/sunnylqm/react-native-stor ...
 - 1-3 Sass 语法、编译、调试
			
Sass 语法格式 这里说的 Sass 语法是 Sass 的最初语法格式,他是通过 tab 键控制缩进的一种语法规则,而且这种缩进要求非常严格.另外其不带有任何的分号和大括号.常常把这种格式称为 Sa ...
 - Thrift-RPC client in Flume
			
Get RpcClient from RpcClientFactory with Reflection programming Message or Event definition in Flum ...
 - 提高 GitHub 网页访问速度 以及 Git Clone 速度 的小技巧
			
参考: http://www.cnblogs.com/mico-liu/p/9303817.html https://blog.csdn.net/qq756684177/article/details ...
 - jQuery无刷新上传之uploadify
			
引自 文章 http://www.cnblogs.com/babycool/archive/2012/08/04/2623137.html 将文章里的代码整合在了一个解决方案里,直接可以下载测试,上代 ...
 - c/c++ 按照行读取文件
			
本文代码都在Windows/VC++6.0下测试过, 在linux/g++下也没有问题. 但是请一定注意linux和Windows文件格式的区别,比如: 1. 当linux上的代码读取Windows文 ...
 - 阿里云安装jdk报错gzip: stdin: unexpected end of file
			
在阿里云上面安装jdk时候报了这个问题,如下图所示 然后看了下jdk应该是有150多M的,但是阿里云上面的只有1M多,删除 重新下载... tar zxvf jdk 好了
 - 深入理解http协议的特点
			
HTTP 是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1.支持客户/服务器模式:2.简单快速:3.灵活:4.无连接:5.无状态. 无连接 无连接的含义是限制每次连接只处理一个请求. ...