实现前要引入Redis架包

  maven项目

  1. <dependency>
  2. <groupId>redis.clients</groupId>
  3. <artifactId>jedis</artifactId>
  4. <version>2.9.0</version>
  5. </dependency>

一、创建类:User

  1. package com.wbg.mr.entity;
  2.  
  3. public class User {
  4. String uid;
  5. String userName;
  6. String passWord;
  7. String name;
  8.  
  9. public User() {
  10. }
  11.  
  12. public User(String uid, String userName, String passWord, String name) {
  13. this.uid = uid;
  14. this.userName = userName;
  15. this.passWord = passWord;
  16. this.name = name;
  17. }
  18.  
  19. @Override
  20. public String toString() {
  21. return "User{" +
  22. "id='" + uid + '\'' +
  23. ", userName='" + userName + '\'' +
  24. ", passWord='" + passWord + '\'' +
  25. ", name='" + name + '\'' +
  26. '}';
  27. }
  28.  
  29. public String getUid() {
  30. return uid;
  31. }
  32.  
  33. public void setUid(String uid) {
  34. this.uid = uid;
  35. }
  36.  
  37. public String getUserName() {
  38. return userName;
  39. }
  40.  
  41. public void setUserName(String userName) {
  42. this.userName = userName;
  43. }
  44.  
  45. public String getPassWrod() {
  46. return passWord;
  47. }
  48.  
  49. public void setPassWrod(String passWord) {
  50. this.passWord = passWord;
  51. }
  52.  
  53. public String getName() {
  54. return name;
  55. }
  56.  
  57. public void setName(String name) {
  58. this.name = name;
  59. }
  60. }

二、创建UserDao类

  1. package com.wbg.mr.dao;
  2.  
  3. import com.wbg.mr.entity.User;
  4. import redis.clients.jedis.Jedis;
  5.  
  6. import java.util.*;
  7.  
  8. public class UserDao {
  9. private static Jedis jedis;
  10.  
  11. public UserDao(Jedis jedis) {
  12. this.jedis = jedis;
  13. }
  14.  
  15. /**
  16. * 添加
  17. */
  18. public void addUser(User user) {
  19. //首先保存user-id
  20. jedis.sadd("useradd", "user-" + user.getUid());
  21. //-----添加数据----------
  22. Map<String, String> map = new HashMap<String, String>();
  23. map.put("uid", user.getUid());
  24. map.put("userName", user.getUserName());
  25. map.put("passWord", user.getPassWrod());
  26. map.put("name", user.getName());
  27. jedis.hmset("user-" + user.getUid(), map);
  28. }
  29.  
  30. /**
  31. * 获取单个User
  32. *
  33. * @return
  34. */
  35. public List<String> getById(String id) {
  36. if (exists()) {
  37. return jedis.hmget("user-" + id, "id", "userName", "passWord", "name");
  38. }
  39. return null;
  40. }
  41. /**
  42. * 获取全部
  43. *
  44. * @return
  45. */
  46. public List<User> listAll() {
  47. List<User> list = new ArrayList<User>();
  48. User user = null;
  49. if (exists()) {
  50. for (String useradd : jedis.smembers("useradd")) {
  51. user = new User();
  52. List<String> lists = jedis.hmget(useradd, "id", "userName", "passWord", "name");
  53. user.setUid(lists.get(0));
  54. user.setUserName(lists.get(1));
  55. user.setPassWrod(lists.get(2));
  56. user.setName(lists.get(3));
  57. list.add(user);
  58. }
  59. return list;
  60. }
  61. return null;
  62. }
  63.  
  64. //删除全部
  65. public boolean delAll() {
  66. if (exists()) {
  67. jedis.del("useradd");
  68. return true;
  69. }
  70. return false;
  71. }
  72.  
  73. //判断是否存在
  74. public boolean exists() {
  75. return jedis.exists("useradd");
  76. }
  77. }

三、测试

  1. public class Main {
  2. private static Jedis jedis =null;
  3. public static void main(String[] args) {
  4. //连接本地的 Redis 服务
  5. jedis = new Jedis("localhost");
  6. System.out.println("连接成功");
  7. //查看服务是否运行
  8. System.out.println("服务正在运行: "+jedis.ping());
  9. user();
  10. }
  11. public static void user(){
  12. UserDao user = new UserDao(jedis);
  13. user.delAll();
  14. user.addUser(new User("21","ldl","123456","刘地林"));
  15. user.addUser(new User("31","oyl","123456","欧一乐"));
  16. user.addUser(new User("41","tyj","123456","唐玉棋"));
  17. user.addUser(new User("51","cs","123456","陈胜"));
  18. user.addUser(new User("61","gsq","123456","郭世棋"));
  19. for (User user1 : user.listAll()) {
  20. System.out.println(user1);
  21. }
  22. }

使用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. webpack-loader原理

    loader loader 是导出为一个函数的 node 模块.该函数在 loader 转换资源的时候调用.给定的函数将调用 loader API,并通过 this 上下文访问. loader配置 { ...

  2. “没有用var声明的为全局变量”这种说法不准确

    结论: “没有用var声明的变量为全局变量”这样的说法不太正确,需要在这句话前面加一个前提,如果①变量前面没有用var声明,②在变量所在在的作用域链中没有这个变量名称,则设置该变量为全局变量. 代码 ...

  3. jQuery和css3控制箭头丝滑旋转

    问题: 我们经常会遇见点击一个小三角使之丝滑的旋转180度上下旋转,怎么实现呢,需要css3搭配jq 来处理 如图:1.点击前 2.点击后(效果丝滑旋转)                 1.html ...

  4. 03_Adaptive注解

    [Adaptive注解] package com.alibaba.dubbo.common.extension; import com.alibaba.dubbo.common.URL; import ...

  5. 微信小程序开发4-JSON

    1.JSON是JavaScript语法的子集 2.JSON的语法规则 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 3.JSON 值可以是: 数字(整数或浮点数) 字符串(在双引 ...

  6. tcp-full.cc

    ns2--tcp-full.cc /* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ /* * Copy ...

  7. golang 安装 guru vscode 安装失败

    1.先从git上复制下来 git clone https://github.com/golang/tools 2.再$GOPATH/bin中安装 go install golang.org/x/too ...

  8. mysql获取表列信息、主键信息

    /** * 获取物理表中已存在的列信息 * @param tbName 表名 * @return results 查询结果 */ fun getExistColumnInfo(tbName:Strin ...

  9. QT网络编程Tcp下C/S架构的即时通信

    先写一个客户端,实现简单的,能加入聊天,以及加入服务器的界面. #ifndef TCPCLIENT_H #define TCPCLIENT_H #include <QDialog> #in ...

  10. msvcr100.dll丢失原因及解决方法

    msvcr100.dll为Visual Studio 2010的一个动态链接库,如果某程序是用它开发出来的,那么该程序的运行就有可能需要此动态链接库.有些程序直接将其打包到了安装目录,并注册,就不会出 ...