redis在java項目中的使用「java連接redis是數據庫」

一、配置文件詳解

俗話說的好呀:行家有木有!出手就知道啊!以前的學習只是為了讓我們知道如何使用Redis ,但是我們作為開發人員,要知其所以然,所以我們得從根本上理解,我們來將Redis.conf文件仔細的學習一下,提升自我!放飛自我! 在實際工作中:一些小小的配置,可以讓你脫穎而出!

  1. 單位:Redis配置對大小寫不敏感!
Redis配置文件知多少?如何使用Jedis操作?

注意這裡:任何寫法都可,不區分大小寫。

units are case insensitive so 1GB 1Gb 1gB are all the same.
  1. 包含:搭建Redis集群時,可以使用includes包含其他配置文件
Redis配置文件知多少?如何使用Jedis操作?
  1. 網絡:
Redis配置文件知多少?如何使用Jedis操作?

解釋如下所示:

bind 127.0.0.1 # 綁定的ip 
protected-mode yes # 保護模式 
port 6379 # 端口設置
  1. 通用GENERAL
daemonize yes # 以守護進程的方式運行,默認是 no,我們需要自己開啟為yes! 
pidfile /var/run/redis_6379.pid # 如果以後台的方式運行,我們就需要指定一個 pid 文件! 
# 日誌 
# Specify the server verbosity level. 
# This can be one of:
# debug (a lot of information, useful for development/testing) 
# verbose (many rarely useful info, but not a mess like the debug level) 
# notice (moderately verbose, what you want in production probably) 生產環境 
# warning (only very important / critical messages are logged)
loglevel notice 
logfile "" # 日誌的文件位置名 
databases 16 # 數據庫的數量,默認是 16 個數據庫 
always-show-logo yes # 是否總是顯示LOGO
  1. 快照(RDB):持久化,在規定的時間內,執行了多少次操作則會持久化到文件 .rdb .aof文件

Redis是內存數據庫,如果沒有持久化,那麼數據斷電即失!

# 如果900s內,如果至少有一個1 key進行了修改,我們及進行持久化操作 
save 900 1 
# 如果300s內,如果至少10 key進行了修改,我們及進行持久化操作 
save 300 10 
# 如果60s內,如果至少10000 key進行了修改,我們及進行持久化操作 
save 60 10000 
# 我們之後學習持久化,會自己定義這個測試!
  1. SECURITY 安全

可以在這裡設置Redis的密碼,默認是沒有密碼的。 ①通過命令設置

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass  #獲取Redis的密碼
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456"  #設置Redis的密碼為123456
OK
# Ctrl+C 退出當前連接
[root@dyjcomputer bin]# redis-cli -p 6379  #重新連接
127.0.0.1:6379> ping  #測試ping,失敗,所有的命令都顯示無權限
(error) NOAUTH Authentication required.  
127.0.0.1:6379> set k1 v1  #失敗,所有的命令都顯示無權限
(error) NOAUTH Authentication required.  
127.0.0.1:6379> auth 123456  #auth + 密碼  登陸上去
OK 
127.0.0.1:6379> ping  #正常
PONG
127.0.0.1:6379> config get requirepass  #獲取密碼,正常
1) "requirepass"
2) "123456"

②通過修改配置文件設置,找到圖示位置,添加密碼

Redis配置文件知多少?如何使用Jedis操作?

重啟Redis測試!

127.0.0.1:6379> ping
(error) NOAUTH Authentication required.  
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> ping
PONG
  1. 限制CLIENTS
maxclients 10000   #設置能連接上redis的最大客戶端的數量 
maxmemory <bytes>  #redis 配置最大的內存容量 
maxmemory-policy noeviction  #內存到達上限之後的處理策略 
1、volatile-lru:只對設置了過期時間的key進行LRU(默認值) 
2、allkeys-lru : 刪除lru算法的key 
3、volatile-random:隨機刪除即將過期key 
4、allkeys-random:隨機刪除 
5、volatile-ttl : 刪除即將過期的 
6、noeviction : 永不過期,返回錯誤
  1. APPEND ONLY 模式 aof配置(持久化保存)
appendonly no  #默認是不開啟aof模式的,默認是使用rdb方式持久化的,在大部分所有的情況下,rdb完全夠用! 
appendfilename "appendonly.aof"  #持久化的文件的名字 
# appendfsync always # 每次修改都會 sync。消耗性能 
appendfsync everysec # 每秒執行一次 sync,可能會丟失這1s的數據! 
# appendfsync no  #不執行 sync,這個時候操作系統自己同步數據,速度最快!

二、Jedis操作Redis

百度的概念性解答我就不貼了,簡單來說,Jedis是Redis官方推薦的Java連接開發工具! 雖然現在的SpringBoot2.×版本已經將Jedis換成了Lettuce,但是我覺得還是有必要了解一下Jedis的使用!

  1. 如何在java項目中整合Jedis並且連接Redis數據庫?

①創建一個Maven項目

空的即可~怎麼創建我就不贅述了!

Redis配置文件知多少?如何使用Jedis操作?

②導入Jedis和fastjson依賴,耐心等待下載完成!

<!--導入jedis的包-->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.2.0</version>
</dependency> 
<!--fastjson-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
 </dependency>

③連接Redis測試,此處為了方便測試,連接的是本地的Redis服務,連接遠程需要更改配置文件和關閉防火牆,以後會單獨弄一篇文章來介紹這個!

// 1、 new Jedis 對象即可
Jedis jedis = new Jedis("127.0.0.1",6379);
// jedis 所有的命令就是我們之前的所有指令
System.out.println(jedis.ping());

如圖所示:

Redis配置文件知多少?如何使用Jedis操作?

返回PONG,證明連接成功!

④常用的API練習:

 		// 1、 new Jedis 對象即可
        Jedis jedis = new Jedis("127.0.0.1",6379);
        jedis.flushDB();//清空當前庫的所有數據
        jedis.set("name","dingyongjun");
        jedis.set("age","23");
        jedis.set("high","173");
        System.out.println("name:"+jedis.get("name")+"nage:"+jedis.get("age")+"nhigh"+jedis.get("high"));

如圖所示:

Redis配置文件知多少?如何使用Jedis操作?
		jedis.lpush("list","1","2","3","4");
        System.out.println("list: "+jedis.lrange("list",0,-1));

如圖所示:

Redis配置文件知多少?如何使用Jedis操作?

⑤總結:在Jedis中連接使用Redis,和Redis控制台命令完全一致,我就不一個個命令再去重複寫一遍了,後面如果有時間的話,我會把所有的命令給慢慢完善上來!

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/209389.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 15:36
下一篇 2024-12-08 15:36

相關推薦

發表回復

登錄後才能評論