继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于Spring 中 redis的使用笔记

mythos_
关注TA
已关注
手记 4
粉丝 6
获赞 73
【Redis的使用】
【基本配置】
  • 注册为服务
    • redis-server --service-install redis.windows.conf --loglevel verbose
  • 使用cmder
    • cmd 中运行 E:/redis/redis-server.exe E:/redis/redis.windows.conf
  • 配置密码
    • requirepass redis1104
    • 客户端登录 auth redis1104
【Java 使用 redis 配置】
  • maven依赖(Spring 4.1.7):

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>1.6.0.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
        <type>jar</type>
    <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.3.2</version>
    </dependency>
  • Spring配置文件

    <!--
        加载redis配置文件 
        如果已经加载了一个文件,那么第一个就要写这个配置项,
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        第二个要加 后面的配置 
        不然就只会加载前面那个文件
    -->
    <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
    <!-- redis连接池的配置 -->
      <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
          <property name="maxActive" value="${redis.pool.maxActive}"/>
          <property name="maxIdle" value="${redis.pool.maxIdle}"/>
          <property name="minIdle" value="${redis.pool.minIdle}"/>
          <property name="maxWait" value="${redis.pool.maxWait}"/>
          <property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>
          <property name="testOnReturn" value="${redis.pool.testOnReturn}"/>
      </bean>
    
      <!-- redis的连接池pool,不是必选项:timeout/password  -->
      <bean id = "jedisPool" class="redis.clients.jedis.JedisPool">
          <constructor-arg index="0" ref="jedisPoolConfig"/>
          <constructor-arg index="1" value="${redis.host}"/>
          <constructor-arg index="2" value="${redis.port}" type="int"/>
          <constructor-arg index="3" value="${redis.timeout}" type="int"/>
          <constructor-arg index="4" value="${redis.password}"/>
      </bean>
  • java 实际测试
  • JedisUtilsTest.java
  • redis 使用后要使用close关闭
  • redis 事务 exec释放事务

jedis遇到的异常

  • Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.serializer.support.DeserializingConverter
  • 版本对不上,要Spring和Spring-data-redis 和 redis和commons-lang3对应
  • 目前是 4.1.7 + 1.6.0 + 2.9.0 + 3.3.2 编译通过了
redis命令行常规使用

常用的数据结构

  • 字符串

    • get
    • set
    • del
  • 列表 (类似队列)

    • rpush 右入队列,末端
    • lpush 左
    • lrange 获取范围( 0,-1 )表示获取全部
    • lindex 获取指定index的元素
    • lpop 左出队列
    • rpop
  • 集合 (类似无序的Set)

    • sadd
    • smembers 获取某Set所有元素
    • sismember 查询某Set是否含某元素,返回类型是 0 1
    • srem 删除指定Set中指定元素
  • 散列 ( 类似Map 嵌套,一个内置的微型redis)

    • hget
    • hset
    • hgetall 获取某散列所有k-v
    • hdel 删除散列中指定k
    • hincrby 自增
  • 有序集合(键是member成员,值是score分值必须是浮点数)
    • zadd 将一个给定分值的成员添加到有序集合里
    • zrange 根据元素在有序集合中的位置,从有序集合中获取多个元素
      • zrange name 0 -1 withscores 获取所有并获取分值
      • zrange name 2 30 withscores
    • zrevrange 从大到小排序的获取集合元素
    • zrangebyscore 获取有序集合在给定范围中的所有元素
      • zrangebyscore name 0 200 withscores
    • zrem
    • zincrby 自增
    • zinterstore 进行集合之间的并集(可以看作是多表连接)
打开App,阅读手记
5人推荐
发表评论
随时随地看视频慕课网APP