redis基本使用(入門一)

redis簡介以及安裝和配置

查看我網易雲筆記 文檔:6-Redis安裝與配置.note
鏈接:http://note.youdao.com/noteshare?id=e41016b553359acd0b4d97a4a62fa538&sub=89A0AF7F3DDF477096CC0B5C290196A6

如果是採用docker-compose安裝。配置和安裝直接用下面的

Jedis連接

RedisDS客戶端封裝

docker-compose.yml配置

version: '3'
services:
  #redis
  redis:
    hostname: redis
    image: redis:latest
    container_name: redis
    restart: unless-stopped
    command: redis-server /etc/redis.conf # 啓動redis命令
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro # 設置容器時區與宿主機保持一致
      - /usr/local/docker/redis/data:/data
      - /usr/local/docker/redis/redis.conf:/etc/redis.conf
    ports:
      - 6379:6379

引入依賴

 <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-core -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.2.3</version>
        </dependency>
 <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
  <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>3.3.0</version>
  </dependency>

配置

在ClassPath(或者src/main/resources)的config目錄下下新建redis.setting

#-------------------------------------------------------------------------------
# Redis客戶端配置樣例
# 每一個分組代表一個Redis實例
# 無分組的Pool配置爲所有分組的共用配置,如果分組自己定義Pool配置,則覆蓋共用配置
# 池配置來自於:https://www.cnblogs.com/jklk/p/7095067.html
#-------------------------------------------------------------------------------

#----- 默認(公有)配置
# 地址,默認localhost
host = localhost
# 端口,默認6379
port = 6379
# 超時,默認2000
timeout = 2000
# 連接超時,默認timeout
connectionTimeout = 2000
# 讀取超時,默認timeout
soTimeout = 2000
# 密碼,默認無
password = 
# 數據庫序號,默認0
database = 0
# 客戶端名,默認"Hutool"
clientName = Hutool
# SSL連接,默認false
ssl = false;

#----- 自定義分組的連接
[custom]
# 地址,默認localhost
host = localhost
# 連接耗盡時是否阻塞, false報異常,ture阻塞直到超時, 默認true
BlockWhenExhausted = true;
# 設置的逐出策略類名, 默認DefaultEvictionPolicy(當連接超過最大空閒時間,或連接數超過最大空閒連接數)
evictionPolicyClassName = org.apache.commons.pool2.impl.DefaultEvictionPolicy
# 是否啓用pool的jmx管理功能, 默認true
jmxEnabled = true;
# 是否啓用後進先出, 默認true
lifo = true;
# 最大空閒連接數, 默認8個
maxIdle = 8
# 最小空閒連接數, 默認0
minIdle = 0
# 最大連接數, 默認8個
maxTotal = 8
# 獲取連接時的最大等待毫秒數(如果設置爲阻塞時BlockWhenExhausted),如果超時就拋異常, 小於零:阻塞不確定的時間,  默認-1
maxWaitMillis = -1
# 逐出連接的最小空閒時間 默認1800000毫秒(30分鐘)
minEvictableIdleTimeMillis = 1800000
# 每次逐出檢查時 逐出的最大數目 如果爲負數就是 : 1/abs(n), 默認3
numTestsPerEvictionRun = 3;
# 對象空閒多久後逐出, 當空閒時間>該值 且 空閒連接>最大空閒數 時直接逐出,不再根據MinEvictableIdleTimeMillis判斷  (默認逐出策略)
SoftMinEvictableIdleTimeMillis = 1800000
# 在獲取連接的時候檢查有效性, 默認false
testOnBorrow = false
# 在空閒時檢查有效性, 默認false
testWhileIdle = false
# 逐出掃描的時間間隔(毫秒) 如果爲負數,則不運行逐出線程, 默認-1
timeBetweenEvictionRunsMillis = -1

基本命令的使用

字符串(String)

 jedis.set("age", "15");  
 jedis.get("age");                       
 jedis.incr("age");// 實現自增  沒有key的情況下值爲0         
 jedis.append("age", "2");//追加字段                
 String age = jedis.substr("age", 0, 1);// 索引從0開始

列表(list)

   jedis.lpush("list-key", "張三");                               
   jedis.lpush("list-key", "李四");                               
   jedis.lpush("list-key", "王五");                               
 // 獲取所有元素                                                      
   List<String> lrange = jedis.lrange("list-key", 0, -1);       
   lrange.forEach(System.out::println);                         
 // 裁剪元素                                                        
   String ltrim = jedis.ltrim("list-key", 0, 2);                
   System.out.println(ltrim);OK                                 

哈希(hash)

    Map<String, String> map = new HashMap<>();                   
    map.put("name", "張曉慧");                                      
    map.put("age", "19");                                        
    jedis.hmset("hash-key", map);                                
  // 獲取屬性                                                        
    List<String> hmget = jedis.hmget("hash-key", "age","name");  
    hmget.forEach(System.out::println);                          
  // 把年齡加一歲                                                      
    Long age = jedis.hincrBy("hash-key", "age", 1);              
    System.out.println(age);                                     
  // 檢查key是否在散列中                                                 
    Boolean age = jedis.hexists("hash-key", "age");              
    System.out.println(age);  // true                            
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章