使用redis+java(模仿數據庫)實現對象的存儲和讀取
實現前要引入Redis架包
maven項目
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </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 }