实现前要引入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(模仿数据库)实现对象存取和读取的更多相关文章

  1. Redis应用场景 及其数据对象 string hash list set sortedset

    原文地址:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html Redis开创了一种新的数据存储思路,使用Redis,我们不用在 ...

  2. Redis非关系型数据库

    1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写. Redis一般作为分布式缓存框架.分布式下的SESSION分离.分布式锁的实现等等. Redis速度快的原因: ...

  3. Spring+Redis集成+关系型数据库持久化

    本篇文章主要介绍了"Spring+Redis集成+关系型数据库持久化",主要涉及到Spring+Redis集成+关系型数据库持久化方面的内容,对于Spring+Redis集成+关系 ...

  4. Java开发各层对象专用名词含义 PO,VO,DAO,BO,DTO,POJO, BYO,Entity,JavaBean,JavaBeans

    Java的几种名词(PO,VO,DAO,BO,POJO)解释 PO:persistant object 持久对象.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一 ...

  5. Redis 非关系型数据库 ( Nosql )

    简介: Redis 是一个开源的,高性能的 key-value 系统,可以用来缓存或存储数据. Redis 数据可以持久化,并且支持多种数据类型:字符串(string),列表(list),哈希(has ...

  6. Redis 的底层数据结构(对象)

    目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层.最常用的数据结构,相信你也掌握的不错. 但 redis 实际存储键值对的时候,是基于对 ...

  7. java 用redisTemplate 的 Operations存取list集合

    一 .存取为list类型 @RestController @RequestMapping("/test") @Slf4j public class TestController { ...

  8. JAVA与数据库MySQL相连接

    JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...

  9. mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?

      本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...

随机推荐

  1. MySQL 8.0 压缩包版安装方法

    转自:https://blog.csdn.net/yangs_2012/article/details/80412016 注意: 操作系统:Windows 10 专业版(64位) MySQL版本:my ...

  2. Hadoop 完全分布式部署(三节点)

    用来测试,我在VMware下用Centos7搭起一个三节点的Hadoop完全分布式集群.其中NameNode和DataNode在同一台机器上,如果有条件建议大家把NameNode单独放在一台机器上,因 ...

  3. 封装hiredis——C++与redis对接(一)(string的SET与GET操作)

    在菜鸟教程自学了redis,总想着像Mysql一样,在C/C++中进行对接.于是查询了一些资料,最后找到了hiredis.然而直接用它的话,难免有点不方便.于是,对其进行封装. hiredis直接去g ...

  4. lintcode 题目记录2

    判断字符串是否是互为置换,类似 替换字符串之类的遍历就行了.. class Solution: # @param {string} A a string # @param {string} B a s ...

  5. java利用直方图实现图片对比

    需求 实现两张图对比,找出其中不同的部分. 分析 首先将大图切片,分成许多小图片.然后进行逐个对比,并设定相似度阈值,判断是否是相同.最后整理,根据生成数组标记不同部分.如果切片足够小,便越能精确找出 ...

  6. IE6 行内定义成块元素后高度失效

    问题描述: ie6下,空标签块元素height定义失效,表现为除设置的height值外还会显示N像素额外的高度. 实际运用中,若标签为空且定义了小于14px的高度,再加入一背景图的话,会发现该元素高度 ...

  7. js权威指南学习笔记(四)对象

    1.创建对象 (1).通过对象直接量的方式创建 说明:对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来. 如:       5 5   ...

  8. html标签篇(2)

    上次讲到<a>标签,并没有细说a标签用法. <!DOCTYPE html> <html lang="en"> <head>  < ...

  9. VMWARE错误-"VirtualInfrastructure.Utils.ClientsXml"的类型初始值设定项引发异常

    异常信息:"VirtualInfrastructure.Utils.ClientsXml"的类型初始值设定项引发异常. 解决方案:以管理员的身份运行客户程序

  10. C语言归并排序

    这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼. 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两 ...