redis使用及5種數據類型

簡介

redis (Remote Dictionary Server 遠程字典服務)開源使用C語言編寫、支持網絡、可基於內存亦可持久化日誌型、Key-Value數據庫;

特點

1、key-value型存儲系統,5種數據類型;
2、高性能數據庫
3、支持主從同步

5種數據類型

在這裏插入圖片描述
在這裏插入圖片描述

  • String字符串類型
    五個命令:get 、 set 、 del 、 incr、 decr 等
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get counter
"2"
127.0.0.1:6379> incr counter
(integer) 3
127.0.0.1:6379> incrby counter 100
(integer) 103
127.0.0.1:6379> get counter
"103"
127.0.0.1:6379> decr counter
(integer) 102
127.0.0.1:6379> get counter
"102"
  • Hash(哈希)
    在這裏插入圖片描述
    命令 hget 、hset、hdel
127.0.0.1:6379> hset user name1 hao
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "hao"
127.0.0.1:6379> hget user name1
"hao"
127.0.0.1:6379> hset user name2 xiaohao
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "hao"
3) "name2"
4) "xiaohao"

可用於緩存,相比String更節省空間

  • 鏈表
    List(redis使用雙端鏈表實現List)有序,Value可重複

在這裏插入圖片描述

127.0.0.1:6379> lpush mylist 1 2 ll ls mem
(integer) 5
127.0.0.1:6379> lrange mylist 0 -1
1) "mem"
2) "ls"
3) "ll"
4) "2"
5) "1"
127.0.0.1:6379>
  • Set集合
    集合類型保存多個字符串,無序,不允許重複元素,不可通過下標獲取元素,可取多個集合交併差集

在這裏插入圖片描述

127.0.0.1:6379> sadd myset hao hao1 xiaohao hao
(integer) 3
127.0.0.1:6379> SMEMBERS myset
1) "xiaohao"
2) "hao1"
3) "hao"
127.0.0.1:6379> SISMEMBER myset hao
(integer) 1

可用於標籤、點贊收藏等功能;

  • Zset有序集合
    有序、元素不可重複

在這裏插入圖片描述

127.0.0.1:6379> zadd myscoreset 100 hao 90 xiaohao
(integer) 2
127.0.0.1:6379> ZRANGE myscoreset 0 -1
1) "xiaohao"
2) "hao"
127.0.0.1:6379> ZSCORE myscoreset hao
"100"

可用於排行榜:排名不可重複,但關注度、字數等可重複;

使用

啓動虛機、進入redis根目錄、啓動redis
在這裏插入圖片描述

代碼:
pom文件導入依賴

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

yml文件配置redis

redis:
    host: 192.168.80.130
    port: 6379
    database: 0 # redis 數據庫索引(默認爲0)
    jedis:
      pool:
        max-active: 50 # 連接池最大連接數(使用負值標識沒有限制)
        max-idle: 20 # 連接池中最大空閒連接
        min-idle: 2 # 連接池中的最小空閒連接

測試類中注入

@Resource
    private RedisTemplate redisTemplate;
@Test
    public void set() {
        redisUtils.set("redis_key", "redis_value");
    }

    @Test
    public void get() {
        String value = redisUtils.get("123");
        System.out.println(value);
    }

@Test
    public void test() {
        TemporaryClassStudentModel temporaryClassStudentModel = null;
        // 根據key值查詢返回
        temporaryClassStudentModel = (TemporaryClassStudentModel) redisTemplate.opsForValue().get("123");
        System.out.println(temporaryClassStudentModel);
    }


temporaryClassStudentModel = new TemporaryClassStudentModel();

            // 上課班ID
            String teachClassId = "123";
            temporaryClassStudentModel.setName("123");
            temporaryClassStudentModel.setId("123");
            temporaryClassStudentModel.setKeyText(keyText);
            temporaryClassStudentModel.setTeachClassId("123");
            temporaryClassStudentModel.setCour。。。seId("123");
            temporaryClassStudentModel.setCourseName("123");
            redisTemplate.opsForValue().set(keyText,temporaryClassStudentModel);
            redisTemplate.expire(keyText,2400, TimeUnit.SECONDS);

後續補充完善。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章