sql >> データベース >  >> NoSQL >> Redis

redisテンプレートを使用してRedisからすべてのキーを取得する方法

    答えを統合しました。ここで確認しました。

    RedisTemplateを使用する場合、Redisからキーを取得する2つの方法は次のとおりです。

    1。 RedisTemplateから直接

    Set<String> redisKeys = template.keys("samplekey*"));
    // Store the keys in a List
    List<String> keysList = new ArrayList<>();
    Iterator<String> it = redisKeys.iterator();
    while (it.hasNext()) {
           String data = it.next();
           keysList.add(data);
    }
    

    注: StringRedisSerializerを使用してredisTemplateを構成しておく必要があります あなたの豆の中

    JavaベースのBean構成を使用する場合

    redisTemplate.setDefaultSerializer(new StringRedisSerializer());
    

    spring.xmlベースのBean構成を使用する場合

    <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    
    <!-- redis template definition -->
    <bean
        id="redisTemplate"
        class="org.springframework.data.redis.core.RedisTemplate"
        p:connection-factory-ref="jedisConnectionFactory"
        p:keySerializer-ref="stringRedisSerializer"
        />
    

    2。 JedisConnectionFactoryから

    RedisConnection redisConnection = template.getConnectionFactory().getConnection();
    Set<byte[]> redisKeys = redisConnection.keys("samplekey*".getBytes());
    List<String> keysList = new ArrayList<>();
    Iterator<byte[]> it = redisKeys.iterator();
    while (it.hasNext()) {
           byte[] data = (byte[]) it.next();
           keysList.add(new String(data, 0, data.length));
    }
    redisConnection.close();
    

    この接続を明示的に閉じないと、https://stackoverflow.com/a/36641934/3884173に記載されているように、基盤となるjedis接続プールが使い果たされてしまいます。



    1. Mongo更新配列要素(.NETドライバー2.0)

    2. mongo.so:>未定義のシンボル:0行目の不明のphp_json_encode。インストール後、php用のmongoドライバー

    3. MongoDBでの地理空間サポート

    4. mongoexport E QUERY SyntaxError:予期しない識別子