Redis的简单实践
Redis的簡(jiǎn)單實(shí)踐
文章目錄
- Redis的簡(jiǎn)單實(shí)踐
- 前言
- Redis簡(jiǎn)介
- Redis基本操作命令
- Java使用Redis
- 使用IDEA搭建Redis項(xiàng)目
- 使用Jedis進(jìn)行簡(jiǎn)單增刪改查
- 使用Jedis操作對(duì)象
前言
在進(jìn)行 Redis 的操作之前,請(qǐng)確保電腦上已經(jīng)安裝了 Redis。
如果還沒(méi)有安裝 Redis 的,請(qǐng)參考這篇博客進(jìn)行安裝 Win10安裝Redis
Redis簡(jiǎn)介
Redis 是一個(gè)高性能的 key-value 分布式內(nèi)存數(shù)據(jù)庫(kù),基于內(nèi)存運(yùn)行,并支持持久化的 NoSQL 數(shù)據(jù)庫(kù)。
Redis 是運(yùn)行在內(nèi)存中的,所以讀寫(xiě)速度非常快,因此 Redis 被廣泛應(yīng)用在緩存方向。
Redis的優(yōu)點(diǎn):
Redis的應(yīng)用場(chǎng)景:
- 熱點(diǎn)數(shù)據(jù)的緩存
- 限時(shí)業(yè)務(wù)的應(yīng)用
- 分布式鎖
- 延時(shí)操作
- 分頁(yè)、模糊查找
- ······
Redis基本操作命令
| set KeyName Value | 設(shè)置 key 和 value 的值’ |
| get KeyName | 獲取對(duì)應(yīng)鍵的值 |
| keys * | 獲取所有的鍵(注意空格) |
| dbsize | 獲取所有鍵的數(shù)量 |
| exists KeyName | 檢查鍵是否存在 |
| del KeyName | 刪除鍵 |
| type KeyName | 查看鍵的類型 |
| expire KeyName 60 | 設(shè)置鍵的過(guò)期時(shí)間為60秒 |
| persist KeyName | 設(shè)置鍵永不過(guò)期 |
| rename KeyName NewKeyName | 修改鍵的名字 |
| sadd CollectionName xx1 xx2 xx3 | 創(chuàng)建集合 |
| smembers CollectionName | 獲取集合 |
| sismember CollectionName xx | 判斷集合中是否存在xx元素 |
| scard CollectionName | 獲取集合中元素的個(gè)數(shù) |
| srem CollectionName xx | 刪除集合中的xx元素 |
根據(jù)前言中的參考博客所述,通過(guò) cmd 打開(kāi) redis 服務(wù),可以在命令行中練習(xí)以上操作命令,以求掌握,這里就不貼圖做演示了。
Java使用Redis
使用IDEA搭建Redis項(xiàng)目
使用 IDEA創(chuàng)建 Redis 項(xiàng)目分為六步:
首先,我們打開(kāi) IDEA,創(chuàng)建一個(gè)新項(xiàng)目。
在左側(cè)選擇“Maven”,Project SDK選擇為自己的 JDK安裝目錄,勾選“Create form archetype”,選擇“quickstart”快速啟動(dòng)的工程,點(diǎn)擊 next。
然后我們填寫(xiě)項(xiàng)目名稱,選擇自己喜歡的路徑,點(diǎn)擊 next。
接著我們要檢查項(xiàng)目信息,看看包名什么的是否需要修改。這里一般都是采用默認(rèn)設(shè)置,直接 finish 即可。
等待項(xiàng)目加載完成。如果IDEA界面的右下角彈出提示 Maven項(xiàng)目需要導(dǎo)入,選擇“Enable Auto-Import”讓其自動(dòng)導(dǎo)入。
如果項(xiàng)目加載完成后看到了如下警告,可以忽略不管,這不會(huì)影響到項(xiàng)目的使用。
項(xiàng)目構(gòu)建完成,我們打開(kāi) pom.xml 文件,導(dǎo)入 redis 的相關(guān)依賴。這里導(dǎo)入了 Jedis 的依賴、阿里的一個(gè) json 處理類
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.3.0</version> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.73</version> </dependency>這兩個(gè)依賴導(dǎo)入完成后,整個(gè)項(xiàng)目就搭建完成了,我們可以開(kāi)始使用了。
使用Jedis進(jìn)行簡(jiǎn)單增刪改查
Jedis是 Redis 官方推薦的 Java 連接開(kāi)發(fā)工具。對(duì) Jedis的熟練使用可以讓我們?cè)?Java 開(kāi)發(fā)中使用好 Redis 中間件。
我們新建一個(gè) util 目錄,在目錄下新建一個(gè) RedisUtil 工具類,用于獲取 Redis 的連接。
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig;public class RedisUtil {//定義連接池和對(duì)象public static JedisPoolConfig poolConfig = new JedisPoolConfig();public static JedisPool jedisPool = null;public static Jedis jedis = null;static {//簡(jiǎn)單配置poolConfig.setMaxIdle(50);//最大空閑數(shù)poolConfig.setMaxTotal(100);//最大連接數(shù)poolConfig.setMaxWaitMillis(20000);//最長(zhǎng)等待時(shí)間(毫秒)//進(jìn)行連接jedisPool = new JedisPool(poolConfig, "127.0.0.1");//獲取jedis對(duì)象jedis = jedisPool.getResource();} }因?yàn)槲覀兪菍?redis 裝在了本機(jī)電腦上,所以配置連接池時(shí)直接使用的是 127.0.0.1 ,如果是裝在服務(wù)器上的,更換為服務(wù)器的IP地址。
當(dāng)然,我們需要通過(guò) cmd 窗口啟動(dòng) redis 的服務(wù),不然運(yùn)行 java 代碼會(huì)報(bào)錯(cuò)。
接著我們新建一個(gè) run 目錄, 在目錄下新建 JedisTest 類來(lái)進(jìn)行操作
import org.example.util.RedisUtil; import redis.clients.jedis.Jedis;public class JedisTest {Jedis jedis = RedisUtil.jedis;//增public void setKeyValue(String key, String value) {jedis.set(key, value);}//查public String getKeyValue(String key) {return jedis.get(key);}//刪public void delKey(String key) {jedis.del(key);}//改public void updateKey(String oldKey, String newKey) {jedis.rename(oldKey, newKey);}public static void main(String[] args) {JedisTest jedisTest = new JedisTest();//設(shè)置鍵值對(duì)jedisTest.setKeyValue("test1", "hello");jedisTest.setKeyValue("test2", "hello2");//取值String v1 = jedisTest.getKeyValue("test1");String v2 = jedisTest.getKeyValue("test2");System.out.println("test1:"+v1+"\ntest2:"+v2);System.out.println("\n");//刪除jedisTest.delKey("test2");String v3 = jedisTest.getKeyValue("test2");System.out.println("test2:"+v3);System.out.println("\n");//改名jedisTest.updateKey("test1","mytest");String v4 = jedisTest.getKeyValue("test1");String v5 = jedisTest.getKeyValue("mytest");System.out.println("test1:"+v4+",mytest:"+v5);} }運(yùn)行 main 方法,可以看到,我們已經(jīng)成功插入了鍵值對(duì),刪改查也成功實(shí)現(xiàn)。
使用Jedis操作對(duì)象
我們之前使用的都是 String 類型,現(xiàn)在我們要通過(guò) jedis 來(lái)傳入對(duì)象。
新建一個(gè) pojo 目錄,在目錄下新建 User 類,實(shí)現(xiàn)構(gòu)造函數(shù)和 Get and Set 方法。
public class User {private String name;private String school;private int age;public User() {}public User(String name, String school, int age) {this.name = name;this.school = school;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }在 run 目錄中新建一個(gè) UserTest 類,實(shí)現(xiàn)對(duì)象的存儲(chǔ)和查詢
import com.alibaba.fastjson.JSON; import org.example.pojo.User; import org.example.util.RedisUtil; import redis.clients.jedis.Jedis;public class UserTest {Jedis jedis = RedisUtil.jedis;//增public void setObject(String key, Object obj) {jedis.set(key, JSON.toJSONString(obj));}//查public Object getObject(String key, Class clazz) {return JSON.parseObject(jedis.get(key), clazz);}public static void main(String[] args) {UserTest userTest = new UserTest();//設(shè)置對(duì)象User user = new User("Bob", "BIT", 20);//進(jìn)行存取userTest.setObject("user", user);User user2 = (User) userTest.getObject("user", User.class);System.out.println("name:"+user2.getName());System.out.println("school:"+user2.getSchool());System.out.println("age:"+user2.getAge());} }這里因?yàn)?value 必須是字符串或者是數(shù)組,我們要傳入對(duì)象的話得通過(guò) JSON 的 toJSonString() 方法把對(duì)象轉(zhuǎn)換為字符串。同樣地,取出的時(shí)候也要使用 parseObject() 方法轉(zhuǎn)換成對(duì)象才行。
運(yùn)行 main 方法,可以看到,我們已經(jīng)成功實(shí)現(xiàn)了對(duì)象的存取。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Redis的简单实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第七章-NoSQL数据库
- 下一篇: 关于机器学习的一些推荐