zoukankan      html  css  js  c++  java
  • redis使用

    Redis是一种开源的内存数据库,也可以用来做缓存、消息订阅。它支持5种基本数据类型(String, List, Hash, Set, Sorted Set)。Redis内置复制以及持久化方案,通过Sentinel以及集群提供高可用方案。

    1,下载

    有两种方式:

    直接下载编译好安装程序 :https://github.com/MicrosoftArchive/redis/releases,当前下载到为:Redis-x64-3.2.100.msi
    下载源码编译: https://github.com/MicrosoftArchive/redis

    2,配置

    安装程序可以把Redis安装成服务,3.2 之后有些新特性,需要设置,否则跨机器会连接不上。

    安装目录下有两个配置文件,分别对应不同的运行方式
    redis.windows.conf
    redis.windows-service.conf

    1)打开配置文件把下面对应的注释掉
    # bind 127.0.0.1
    2)保护模式
    protected-mode no

    如果需要配置密码访问,则把上面修改成

    protected-mode yes
    requirepass xxxxxxx

    3)Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no

    daemonize no --可以不修改

    4)linux安装及启动

    $ wget http://download.redis.io/releases/redis-5.0.6.tar.gz
    $ tar xzf redis-5.0.6.tar.gz
    $ cd redis-5.0.6
    $ make

    上面编译成功后,修改redis.conf文件参数(端口,访问密码,是否后台运行)

    src/redis-server redis.conf

     

    基本类型介绍

      Redis的key是字符安全的(也就是没有转义)

      String:len返回的长度是字节的长度,可以对string类型的值进行数字计算

      List:  是一个双向链表,用它可以实现对列(queen), Stack

      Set: 存储的无序集合,可以用来做抽奖之类的

      Sorted Set:有序的集合

      Hash: 最适合存储对象

      bitmap: 按位存储,只能存0与1,支持多个bitmap做布尔运算,可以用来做登日志记录

    3,使用

    引入jedis-2.9.0.jar, commons-pool2.jar包

    <dependency> 
        <groupId>org.apache.commons</groupId> 
        <artifactId>commons-pool2</artifactId> 
        <version>2.4.2</version> 
    </dependency>

    3.1 不用连接沲的用法

    <bean id="Jedis" class="redis.clients.jedis.Jedis">
        <constructor-arg value="xxxx.xxxx.xxxx.xxxx"></constructor-arg>
    </bean>
    @Autowired private Jedis jedis;
    jedis.lpush(key, value);

    3.2 用连接沲的用法

    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="300"/> <!--最大能够保持idel状态的对象数-->
        <property name="maxTotal" value="60000"/><!--最大分配的对象数-->
        <property name="testOnBorrow" value="true"/><!--当调用borrow Oject方法时,是否进行有效性检查-->
    </bean>
    
    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
        <constructor-arg index="0" ref="jedisPoolConfig"/>
        <constructor-arg index="1" value="xxxx.xxxx.xxxx.xxxx" type="String" />
        <constructor-arg index="2" value="6379" type="int"/>
    </bean>
    @Autowired private JedisPool jedisPool;
    Jedis redis = jedisPool.getResource();    
    String ID = redis.rpop(myBean.getCust_id());// 查询该机器中最早的一条指令
    redis.close();

    注意:要及时close以便释放资源。

    4 监控运行状况

      在安装目录下双击redis-cli.exe,输入下列指令:

      info

      可以查看到连接数量,使用内存状况 

      client list

      列出连接列表,如果idle(以秒计算的空闲时长)很大,是空闲连接没有被及时释放掉从而导致connected_clients非常高

      config get timeout

      查看redis的配置timeout,如果为0,表示关闭该功能

      config set timeout 600

      设置timeout,单位为秒

    5, 测试连接远程

    redis-cli.exe -h 192.168.1.225 -p 6379

    连接上之后就可以运行命令,如

    set foo 100
    get foo

    简易教程:http://www.redis.net.cn/tutorial/3503.html

    详情中文教程:http://www.redis.cn/

    https://github.com/ifnu/spring-security-redis

    https://projects.spring.io/spring-data-redis/#quick-start

  • 相关阅读:
    最短母串
    noip模拟测试7
    linux下的对拍程序
    noip模拟测试6
    QWidget 前后位置设定
    C++编程规范_第5~13条 设计风格
    random /timer/sort 示例代码
    资料准备
    【转】三维动态数组 分配与释放
    批量修改文件名
  • 原文地址:https://www.cnblogs.com/season2009/p/8665696.html
Copyright © 2011-2022 走看看