redis是什么?
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。 Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日志型、Key-Value數據庫,並提供多種語言的API。
為什么使用redis?
● 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
● 豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
● 原子 – Redis的所有操作都是原子性的,意思就是要么成功執行要么失敗完全不執行。單個操作是原子性的。多個操作也支持事務,即原子性,通過MULTI和EXEC指令包起來。
● 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
redis使用步驟
准備工作,在本機上安裝redis服務器。這里使用Redis-x64-3.2.100 .msi版本,百度雲盤地址:鏈接: https://pan.baidu.com/s/1BoppoI2VCX-A5jSWyKeWlQ 密碼:qqn2第一步:啟動本地的Redis服務;第二步:連接本地的Redis服務,並且設置值,以便於在java代碼中獲取。實際上也可以在java代碼中設置值,然后獲取,為了直觀地感受到,這里直接在命令提示符下設置Redis的值,然后通過設置的key在java中獲取設置的value值。第三步:在java代碼中獲取Redis中設置的值。1、啟動redis服務
cmd打開命令行,輸入如圖啟動redis:
2、連接本地的Redis服務
![]()
3、在java中使用redis
在java用使用redis依賴於jedis-2.9.0.jar包,百度雲盤地址:鏈接: https://pan.baidu.com/s/1s9eYmFR93DHflJTEk6HjDA 密碼:0qqa目錄:
連接redis:RedisJava.java1 package cn.redisdemo; 2 3 import redis.clients.jedis.Jedis; 4 5 public class RedisJava { 6 /** 7 * 連接redis服務器 8 */ 9 public void connection(){ 10 // 連接本地的 Redis 服務 11 Jedis jedis = new Jedis("localhost"); 12 System.out.println("連接本地的 Redis 服務成功!"); 13 // 查看服務是否運行 14 System.out.println("服務 正在運行: " + jedis.ping()); 15 } 16 }
測試類:![]()
效果:![]()
![]()
redis存取字符串:
連接redis:RedisJava.java(單例)1 package cn.redisdemo; 2 3 import redis.clients.jedis.Jedis; 4 5 public class RedisJava { 6 private static Jedis jedis = new Jedis("localhost"); 7 private RedisJava(){}; 8 /** 9 * 連接redis服務器 10 */ 11 public static Jedis getConnection(){ 12 return jedis; 13 } 14 }
測試類:1 package test; 2 3 import org.junit.Test; 4 5 import redis.clients.jedis.Jedis; 6 import cn.redisdemo.RedisJava; 7 8 public class RedisJavaTest { 9 @Test 10 public void test() { 11 Jedis jedis = RedisJava.getConnection(); 12 //set值 13 jedis.set("str1", "test1"); 14 //get值 15 String str1 = jedis.get("str1"); 16 //打印測試 17 System.out.println("str1的值:" + str1); 18 } 19 }效果:![]()
redis存取List集合
1 @Test 2 public void testList(){ 3 Jedis jedis = RedisJava.getConnection(); 4 // 存儲數據到列表中 5 jedis.lpush("kecheng", "java"); 6 jedis.lpush("kecheng", "php"); 7 jedis.lpush("kecheng", "Mysql"); 8 9 // 獲取存儲的數據並輸出//0代表開始下標,-1代表所有,其他大於零數代表結束下標 10 List<String> list = jedis.lrange("kecheng", 0, -1); 11 for (int i = 0; i < list.size(); i++) { 12 System.out.println("redis list里面存儲的值是:" + list.get(i)); 13 } 14 }
效果:![]()
補充://List<String> list = jedis.lrange("kecheng", 0, jedis.llen("kecheng")); //jedis.llen獲取長度//jedis.del("kecheng");//移除該List里的值菜鳥教程:http://www.runoob.com/redis/redis-commands.html