Redis のクイックスタート

目次

1.redisのインストール

1.1、Linux インストール Redis

1.2、Windows インストール Redis

1.3. Linux で Redis サービスを開始する

1.4、Windows が Redis を起動します

2. Redis共通コマンド

2.1. 一般的に使用される 5 つのデータ型

2.2. 文字列型の共通コマンド

キー値を設定 (同じキーの場合、元のキー値を上書きします)

キーを取得します

setex key 秒 vlaue (キー値が秒秒後にクリアされることを示します)

setnx キーの値 (キーが存在しない場合にのみ有効)

2.3 ハッシュ型の共通コマンド

hset key field vlaue (キー内のフィールドの値を設定)

hget key field (キー内のフィールドの値を確認します)

hdel キー フィールド (キー内のフィールドの値を削除)

hvals キー (キー内のすべての値を取得)

hgetall キー (キー内のすべてのフィールドと値を取得)

2.4. リスト型の共通コマンド

lpush key value1 value2 ... (ヘッダーに 1 つ以上の値を挿入)

lrange キー start stop (指定範囲の値を取得)

rpop キー (リストの最後の要素を削除して取得)

llen キー (リストの長さを取得)

brpop key 秒 (リストの最後の要素を削除して取得します。リストに要素がない場合は、タイムアウトまたはポップアップ要素が見つかるまでブロックします)

2.5. コレクション型の共通コマンド

sacd key member1 member2 ... (セットに 1 つ以上のメンバーを追加)

smembers キー (コレクション内のすべてのメンバーを返します)

スカードキー (コレクションのメンバー数を取得)

sinter key1 key2 ... (指定されたセットの共通部分を返します)

sunion key1 key2 ... (指定されたセットの結合を返します)

sdiff key1 key2 ... (指定されたセットの差を返します)

srem key member1 member2 ... (1 つ以上のメンバーを削除)

2.6. 順序付きコレクション型で一般的に使用されるコマンド

zadd key スコア 1 メンバー 1 スコア 2 メンバー 2 ... (セットに 1 つ以上のメンバーを追加するか、既存のメンバーのスコアを更新します)

zrange key start stop [withscores] (範囲内のメンバーをスコア付きで返します)

Zincrby キー インクリメント メンバー (指定されたメンバー スコアにインクリメントを追加)

zrem key member1 member2... (1 つ以上のメンバーを削除)

2.7. 共通コマンド

キー * (すべてのキーを表示)

キーが存在します (キーが存在するかどうかを確認します)

type key (キーのタイプを返します)

ttl key (キーの残りの有効期間を秒単位で返します)

del key (指定したキーを削除)


1.redisのインストール

1.1、Linux インストール Redis

  • Redis公式Webサイトからインストールパッケージをダウンロードします。

Linux バージョンのダウンロード リンク: /releases/ のインデックス

4.0.0のダウンロードはこちらから!

  • Redis インストール パッケージを Linux にアップロードする

  • インストールパッケージを解凍します

  • Redisの依存環境gccをインストールする

  • 「redis-4.0.0」を入力し、コンパイルし、コマンド「make」を実行します。

  • インストールする Redis の src ディレクトリを入力し、コマンド: make install

インストール成功

1.2、Windows インストール Redis

  • github で tarball を入手します

Windows ダウンロード アドレス: Microsoftarchive/redis をリリース GitHub

  • 解凍するだけです

1.3. Linux で Redis サービスを開始する

  • Redis 接続パスワードを変更します (redis.conf ファイルを変更します)。

  • サービスを開始します (src の下の redis-server)

この時画面を占有している状態になっており、端末を閉じるとサービスが停止してしまいます(ctrl+cでも停止可能)、設定ファイルを修正することで解決できます!

  • Redis解凍ファイルのルートパスの下にある構成ファイルを変更します。

  • サービスを再起動する

無事にスタートしました!

  • Redis 構成ファイルを変更し、ポート 6379 を開き、ファイアウォールをすぐに有効にします。リモート接続を有効にする

  • Windows 上の仮想マシン上の Redis に接続する

1.4、Windows が Redis を起動します

redis-server をダブルクリックするだけです。

上記を参照してパスワードと関連設定を変更してください。

2. Redis共通コマンド

2.1. 一般的に使用される 5 つのデータ型

2.2. 文字列型の共通コマンド

キー値を設定 (同じキーの場合、元のキー値を上書きします)

キーを取得します

setex key 秒 vlaue (キー値が秒秒後にクリアされることを示します)

setnx キーの値 (キーが存在しない場合にのみ有効)

2.3 ハッシュ型の共通コマンド

hset key field vlaue (キー内のフィールドの値を設定)

hget key field (キー内のフィールドの値を確認します)

hdel キー フィールド (キー内のフィールドの値を削除)

hvals キー (キー内のすべての値を取得)

hgetall キー (キー内のすべてのフィールドと値を取得)

2.4. リスト型の共通コマンド

キューの形式(後入れ先出しの特徴)を採用しており、キュー内の要素は繰り返し可能です!

lpush key value1 value2 ... (ヘッダーに 1 つ以上の値を挿入)

lrange キー start stop (指定範囲の値を取得)

rpop キー (リストの最後の要素を削除して取得)

llen キー (リストの長さを取得)

brpop key 秒 (リストの最後の要素を削除して取得します。リストに要素がない場合は、タイムアウトまたはポップアップ要素が見つかるまでブロックします)

2.5. コレクション型の共通コマンド

Redis セットは、文字列型の順序付けされていないコレクションです。コレクションメンバーは個性豊か!

sacd key member1 member2 ... (セットに 1 つ以上のメンバーを追加)

smembers キー (コレクション内のすべてのメンバーを返します)

スカードキー (コレクションのメンバー数を取得)

sinter key1 key2 ... (指定されたセットの共通部分を返します)

sunion key1 key2 ... (指定されたセットの結合を返します)

sdiff key1 key2 ... (指定されたセットの差を返します)

srem key member1 member2 ... (1 つ以上のメンバーを削除)

2.6. 順序付きコレクション型で一般的に使用されるコマンド

Redis の順序付きコレクションは String 型の順序付きコレクションであり、要素の繰り返しは許可されません。各要素は double 型のスコアに関連付けられており、スコアは繰り返すことができます。最後に、それらは最大から最小の順に並べ替えられます。

zadd key スコア 1 メンバー 1 スコア 2 メンバー 2 ... (セットに 1 つ以上のメンバーを追加するか、既存のメンバーのスコアを更新します)

zrange key start stop [withscores] (範囲内のメンバーをスコア付きで返します)

Zincrby キー インクリメント メンバー (指定されたメンバー スコアにインクリメントを追加)

zrem key member1 member2... (1 つ以上のメンバーを削除)

2.7. 共通コマンド

キー * (すべてのキーを表示)

キーが存在します (キーが存在するかどうかを確認します)

type key (キーのタイプを返します)

ttl key (キーの残りの有効期間を秒単位で返します)

del key (指定したキーを削除)

3. Java は Redis 上で動作します

3.1. SpringBoot は Redis を統合します

  • 依存関係をインポートする

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
  • yml設定

spring:
  redis:
    database: 0 #初始数据库
    #连接IP,localhost为127.0.0.1
    host: localhost
    #端口号
    port: 6379
    #redis连接密码,没有可不写
#    password: root1234
    jedis:
      pool:
        #最大连接数
        max-active: 8
        #最大阻塞等待时间(负数表示没限制)
        max-wait: -1
        #最大空闲
        max-idle: 8
        #最小空闲
        min-idle: 0
        #连接超时时间
        timeout: 10000
  • Redisシリアル化構成クラス

    @Configuration
    public class RedisConfig extends RedisAutoConfiguration {
    
        /**
         * redis序列化改写
         * @param connectionFactory
         * @return
         */
        @Bean
        public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory connectionFactory){
            RedisTemplate<Object,Object> redisTemplate=new RedisTemplate<>();
    
            redisTemplate.setKeySerializer(new StringRedisSerializer());//
            redisTemplate.setHashKeySerializer(new StringRedisSerializer());
    
            redisTemplate.setConnectionFactory(connectionFactory);
            return redisTemplate;
        }
    }

3.2. 一般的な Redis コマンドによる Java の統合

RedisTemplate は使用前に注入する必要がある

    @Resource
    private RedisTemplate redisTemplate;

文字列データ型を操作する

        //存值
        redisTemplate.opsForValue().set("sname","001");//set
        //取值
        String name = (String) redisTemplate.opsForValue().get("sname");//get
        //设置存取时长
        redisTemplate.opsForValue().setIfAbsent("name","002",5, TimeUnit.SECONDS);//setex

ハッシュ データ型の操作

//获取操作对象
HashOperations hashOperations = redisTemplate.opsForHash();
//存值
hashOperations.put("hash","name","张三");
//取值
String name = hashOperations.get("hash", "name").toString();
//删除某字段
hashOperations.delete("hash","age");//hdel
//获取所有值
List hash = hashOperations.values("hash");//hvals
//获取所有字段
Set hash1 = hashOperations.keys("hash");

リストデータ型の操作

        //获取操作对象
        ListOperations listOperations = redisTemplate.opsForList();

        //存值
        listOperations.leftPush("list","1");//单个加入列表
        listOperations.leftPushAll("list",2,3,4,5);//多个加入列表

        //获取指定范围内的列表值
        List list = listOperations.range("list", 0, -1);
        for (Object o : list) {
            System.out.println(o);
        }

        System.out.println("==============================");
        int size = listOperations.size("list").intValue();//获取列表长度
        for (int i = 0; i < size; i++) {
            Object pop = listOperations.rightPop("list");//移除并获取最后一个元素
            System.out.println(pop);
        }

        //设置阻塞时长的移除数据
        Object timePop = listOperations.rightPop("list", 5, TimeUnit.SECONDS);

順序付けされていないコレクションのデータ型を操作します

        SetOperations setOperations = redisTemplate.opsForSet();

        //存值
        setOperations.add("set",1,2,3,4,5,6);
        //取值
        Set<Integer> set = setOperations.members("set");
        for (Integer integer : set) {
            System.out.println(integer);
        }
        System.out.println("=======================");
        //删除
        setOperations.remove("set",5,6);//删除set中的5,6

ソートされたコレクションのデータ型を操作します。

        ZSetOperations zSetOperations = redisTemplate.opsForZSet();

        //存值
        zSetOperations.add("Zset","a",0.1);
        zSetOperations.add("Zset","b",5.1);
        zSetOperations.add("Zset","c",1.1);
        zSetOperations.add("Zset","d",0.8);

        //取值
        Set<String> zset = zSetOperations.range("Zset", 0, -1);
        for (String s : zset) {
            System.out.println(s);
        }
        //修改分数
        zSetOperations.incrementScore("Zset","c",20);//将c的分数值增加20
        System.out.println("=============================");
        //删除值
        zSetOperations.remove("Zset","a");//删除a

通用操作

        //查看所有key
        Set<String> keys = redisTemplate.keys("*");
        for (String key : keys) {
            System.out.println(key);
        }
        //检查key是否存在
        Boolean set = redisTemplate.hasKey("set");//存在为true;不存在为false
        System.out.println(set);
        //返回key的数据类型
        DataType dataType = redisTemplate.type("set");
        System.out.println(dataType.name());
        //删除指定key
        redisTemplate.delete("list");

2023-03-06

おすすめ

転載: blog.csdn.net/qq_61544409/article/details/129366221