Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Tại sao dữ liệu được lưu trữ bằng các khóa lạ trong Redis khi sử dụng Jedis với Spring Data?

Được, tôi đã tìm kiếm một lúc và tìm thấy trợ giúp tại http://java.dzone.com/articles/spring-data-redis.

Nó xảy ra do tuần tự hóa Java.

Bộ nối tiếp khóa cho redisTemplate cần được định cấu hình thành StringRedisSerializer tức là như thế này:

<bean 
    id="jedisConnectionFactory" 
    class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" 
    p:host-name="${redis.server}" 
    p:port="${redis.port}" 
    p:use-pool="true"/>

<bean 
    id="stringRedisSerializer" 
    class="org.springframework.data.redis.serializer.StringRedisSerializer"/>

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

Bây giờ, khóa trong redis là vc:501381 .

Hoặc như @niconic nói, chúng ta cũng có thể đặt chính bộ tuần tự hóa mặc định thành bộ tuần tự hóa chuỗi như sau:

<bean 
    id="redisTemplate" 
    class="org.springframework.data.redis.core.RedisTemplate"
    p:connection-factory-ref="jedisConnectionFactory" 
    p:defaultSerializer-ref="stringRedisSerializer"
/>

có nghĩa là tất cả các khóa và giá trị của chúng tôi là chuỗi. Tuy nhiên, lưu ý rằng điều này có thể không phù hợp, vì bạn có thể muốn các giá trị của mình không chỉ là chuỗi.

Nếu giá trị của bạn là một đối tượng miền, thì bạn có thể sử dụng bộ nối tiếp Jackson và định cấu hình bộ nối tiếp như đã đề cập ở đây, tức là như sau:

<bean id="userJsonRedisSerializer" class="org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer">
    <constructor-arg type="java.lang.Class" value="com.mycompany.redis.domain.User"/>
</bean>

và định cấu hình mẫu của bạn thành:

<bean 
    id="redisTemplate" 
    class="org.springframework.data.redis.core.RedisTemplate"
    p:connection-factory-ref="jedisConnectionFactory" 
    p:keySerializer-ref="stringRedisSerializer"
    p:hashKeySerializer-ref="stringRedisSerializer" 
    p:valueSerialier-ref="userJsonRedisSerializer"
/>


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không chặn Redis pubsub có được không?

  2. Phiên NodeJS + ExpressJS + RedisStore là không xác định

  3. Cách cài đặt Redis

  4. Thiết kế bảng cơ sở dữ liệu Redis như SQL?

  5. Stackexchange.redis thiếu hỗ trợ WAIT