Redis配置文件詳解和如何使用Jedis操作

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

注意這里:任何寫法都可,不區(qū)分大小寫。
units are case insensitive so 1GB 1Gb 1gB are all the same.
復(fù)制代碼包含:搭建Redis集群時,可以使用includes包含其他配置文件

網(wǎng)絡(luò):

解釋如下所示:
bind 127.0.0.1 # 綁定的ip
protected-mode yes # 保護(hù)模式
port 6379 # 端口設(shè)置
復(fù)制代碼通用GENERAL
daemonize yes # 以守護(hù)進(jìn)程的方式運(yùn)行,默認(rèn)是 no,我們需要自己開啟為yes!
pidfile /var/run/redis_6379.pid # 如果以后臺的方式運(yùn)行,我們就需要指定一個 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) 生產(chǎn)環(huán)境
# warning (only very important / critical messages are logged)
loglevel notice
logfile "" # 日志的文件位置名
databases 16 # 數(shù)據(jù)庫的數(shù)量,默認(rèn)是 16 個數(shù)據(jù)庫
always-show-logo yes # 是否總是顯示LOGO
復(fù)制代碼快照(RDB):持久化,在規(guī)定的時間內(nèi),執(zhí)行了多少次操作則會持久化到文件 .rdb .aof文件
Redis是內(nèi)存數(shù)據(jù)庫,如果沒有持久化,那么數(shù)據(jù)斷電即失!
# 如果900s內(nèi),如果至少有一個1 key進(jìn)行了修改,我們及進(jìn)行持久化操作
save 900 1
# 如果300s內(nèi),如果至少10 key進(jìn)行了修改,我們及進(jìn)行持久化操作
save 300 10
# 如果60s內(nèi),如果至少10000 key進(jìn)行了修改,我們及進(jìn)行持久化操作
save 60 10000
# 我們之后學(xué)習(xí)持久化,會自己定義這個測試!
復(fù)制代碼SECURITY 安全
可以在這里設(shè)置Redis的密碼,默認(rèn)是沒有密碼的。①通過命令設(shè)置
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" #設(shè)置Redis的密碼為123456
OK
# Ctrl+C 退出當(dāng)前連接
[root@dyjcomputer bin]# redis-cli -p 6379 #重新連接
127.0.0.1:6379> ping #測試ping,失敗,所有的命令都顯示無權(quán)限
(error) NOAUTH Authentication required.
127.0.0.1:6379> set k1 v1 #失敗,所有的命令都顯示無權(quán)限
(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"
復(fù)制代碼②通過修改配置文件設(shè)置,找到圖示位置,添加密碼

重啟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
復(fù)制代碼限制CLIENTS
maxclients 10000 #設(shè)置能連接上redis的最大客戶端的數(shù)量
maxmemory <bytes> #redis 配置最大的內(nèi)存容量
maxmemory-policy noeviction #內(nèi)存到達(dá)上限之后的處理策略
1、volatile-lru:只對設(shè)置了過期時間的key進(jìn)行LRU(默認(rèn)值)
2、allkeys-lru :刪除lru算法的key
3、volatile-random:隨機(jī)刪除即將過期key
4、allkeys-random:隨機(jī)刪除
5、volatile-ttl :刪除即將過期的
6、noeviction :永不過期,返回錯誤
復(fù)制代碼APPEND ONLY 模式 aof配置(持久化保存)
appendonly no #默認(rèn)是不開啟aof模式的,默認(rèn)是使用rdb方式持久化的,在大部分所有的情況下,rdb完全夠用!
appendfilename "appendonly.aof" #持久化的文件的名字
# appendfsync always # 每次修改都會 sync。消耗性能
appendfsync everysec # 每秒執(zhí)行一次 sync,可能會丟失這1s的數(shù)據(jù)!
# appendfsync no #不執(zhí)行 sync,這個時候操作系統(tǒng)自己同步數(shù)據(jù),速度最快!
復(fù)制代碼二、Jedis操作Redis
百度的概念性解答我就不貼了,簡單來說,Jedis是Redis官方推薦的Java連接開發(fā)工具! 雖然現(xiàn)在的SpringBoot2.×版本已經(jīng)將Jedis換成了Lettuce,但是我覺得還是有必要了解一下Jedis的使用!
如何在java項目中整合Jedis并且連接Redis數(shù)據(jù)庫?
①創(chuàng)建一個Maven項目
空的即可~怎么創(chuàng)建我就不贅述了!
②導(dǎo)入Jedis和fastjson依賴,耐心等待下載完成!
<!--導(dǎo)入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>
復(fù)制代碼③連接Redis測試,此處為了方便測試,連接的是本地的Redis服務(wù),連接遠(yuǎn)程需要更改配置文件和關(guān)閉防火墻,以后會單獨弄一篇文章來介紹這個!
// 1、 new Jedis 對象即可
Jedis jedis = new Jedis("127.0.0.1",6379);
// jedis 所有的命令就是我們之前的所有指令
System.out.println(jedis.ping());
復(fù)制代碼如圖所示:

返回PONG,證明連接成功!
④常用的API練習(xí):
// 1、 new Jedis 對象即可
Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.flushDB();//清空當(dāng)前庫的所有數(shù)據(jù)
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"));
復(fù)制代碼如圖所示:
jedis.lpush("list","1","2","3","4");
System.out.println("list: "+jedis.lrange("list",0,-1));
復(fù)制代碼如圖所示:

⑤總結(jié):在Jedis中連接使用Redis,和Redis控制臺命令完全一致,我就不一個個命令再去重復(fù)寫一遍了,后面如果有時間的話,我會把所有的命令給慢慢完善上來!
作者:大魚丶
鏈接:https://juejin.cn/post/6981243717319393311
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
