使用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;

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> User() {
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> User(String uid, String userName, String passWord, String name) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.uid =<span style="color: rgba(0, 0, 0, 1)"> uid;
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.userName =<span style="color: rgba(0, 0, 0, 1)"> userName;
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.passWord =<span style="color: rgba(0, 0, 0, 1)"> passWord;
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.name =<span style="color: rgba(0, 0, 0, 1)"> name;
}

@Override
</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String toString() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> "User{" +
            "id='" + uid + '\'' +
            ", userName='" + userName + '\'' +
            ", passWord='" + passWord + '\'' +
            ", name='" + name + '\'' +
            '}'<span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String getUid() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> uid;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setUid(String uid) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.uid =<span style="color: rgba(0, 0, 0, 1)"> uid;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String getUserName() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> userName;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setUserName(String userName) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.userName =<span style="color: rgba(0, 0, 0, 1)"> userName;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String getPassWrod() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> passWord;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setPassWrod(String passWord) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.passWord =<span style="color: rgba(0, 0, 0, 1)"> passWord;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> String getName() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> name;
}

</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> setName(String name) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.name =<span style="color: rgba(0, 0, 0, 1)"> 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;

</span><span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> UserDao(Jedis jedis) {
    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.jedis =<span style="color: rgba(0, 0, 0, 1)"> jedis;
}

</span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
 * 添加
 </span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> addUser(User user) {
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">首先保存user-id</span>
    jedis.sadd("useradd", "user-" +<span style="color: rgba(0, 0, 0, 1)"> user.getUid());
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">-----添加数据----------</span>
    Map&lt;String, String&gt; map = <span style="color: rgba(0, 0, 255, 1)">new</span> HashMap&lt;String, String&gt;<span style="color: rgba(0, 0, 0, 1)">();
    map.put(</span>"uid"<span style="color: rgba(0, 0, 0, 1)">, user.getUid());
    map.put(</span>"userName"<span style="color: rgba(0, 0, 0, 1)">, user.getUserName());
    map.put(</span>"passWord"<span style="color: rgba(0, 0, 0, 1)">, user.getPassWrod());
    map.put(</span>"name"<span style="color: rgba(0, 0, 0, 1)">, user.getName());
    jedis.hmset(</span>"user-" +<span style="color: rgba(0, 0, 0, 1)"> user.getUid(), map);
}

</span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
 * 获取单个User
 *
 * </span><span style="color: rgba(128, 128, 128, 1)">@return</span>
 <span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">public</span> List&lt;String&gt;<span style="color: rgba(0, 0, 0, 1)"> getById(String id) {
    </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (exists()) {
        </span><span style="color: rgba(0, 0, 255, 1)">return</span> jedis.hmget("user-" + id, "id", "userName", "passWord", "name"<span style="color: rgba(0, 0, 0, 1)">);
    }
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
}
</span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
 * 获取全部
 *
 * </span><span style="color: rgba(128, 128, 128, 1)">@return</span>
 <span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 0, 255, 1)">public</span> List&lt;User&gt;<span style="color: rgba(0, 0, 0, 1)"> listAll() {
    List</span>&lt;User&gt; list = <span style="color: rgba(0, 0, 255, 1)">new</span> ArrayList&lt;User&gt;<span style="color: rgba(0, 0, 0, 1)">();
    User user </span>= <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (exists()) {
        </span><span style="color: rgba(0, 0, 255, 1)">for</span> (String useradd : jedis.smembers("useradd"<span style="color: rgba(0, 0, 0, 1)">)) {
            user </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> User();
            List</span>&lt;String&gt; lists = jedis.hmget(useradd, "id", "userName", "passWord", "name"<span style="color: rgba(0, 0, 0, 1)">);
            user.setUid(lists.get(</span>0<span style="color: rgba(0, 0, 0, 1)">));
            user.setUserName(lists.get(</span>1<span style="color: rgba(0, 0, 0, 1)">));
            user.setPassWrod(lists.get(</span>2<span style="color: rgba(0, 0, 0, 1)">));
            user.setName(lists.get(</span>3<span style="color: rgba(0, 0, 0, 1)">));
            list.add(user);
        }
        </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> list;
    }
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">删除全部</span>
<span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span><span style="color: rgba(0, 0, 0, 1)"> delAll() {
    </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (exists()) {
        jedis.del(</span>"useradd"<span style="color: rgba(0, 0, 0, 1)">);
        </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
    }
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
}

</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">判断是否存在</span>
<span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">boolean</span><span style="color: rgba(0, 0, 0, 1)"> exists() {
    </span><span style="color: rgba(0, 0, 255, 1)">return</span> jedis.exists("useradd"<span style="color: rgba(0, 0, 0, 1)">);
}

}

三、测试

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);
        }
}