zoukankan      html  css  js  c++  java
  • redis知识点汇总

    redis基本命令

    • select命令切换数据库
    • dbsize查看当前数据库的key的数量
    • flushdb:清空当前库
    • Flushall;通杀全部库

    redis五大数据类型

    1.String(字符串)
      string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

      string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

      string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

    2.hash(类似java中的map)

      Hash(哈希)
      Redis hash 是一个键值对集合。
      Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    3.List(列表)
      Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
      它的底层实际是个链表

    4.Set(集合)

      Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

    5.zset(sorted set:有序集合)

    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
    不同的是每个元素都会关联一个double类型的分数。
    redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

    Redis 键(key)

     1.keys *: 获取所有键

     2.exists key: 判断某个key是否存在

    3. move key db:移动key到db库

     4.expire key 秒钟:为给定的key设置过期时间

    5. ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

    6. type key 查看你的key是什么类型

    哨兵模式

    哨兵配置文件
    port 63791
    sentinel monitor master-1 127.0.0.1 6379 2 //主master,2个sentinel选举成功后才有效
    sentinel down-after-milliseconds master-1 5000 //判断主master的挂机时间(毫秒),超时未返回正确信息后标记为sdown状态
    sentinel failover-timeout master-1 18000 //若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
    sentinel auth-pass master-1 grs //身份认证
    sentinel parallel-syncs master-1 1 //选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步,这个数字越小,完成故障转移所需的时间就越长

    1.自定义一个目录,然后创建sentinel.conf文件,改好配置

    2.启动哨兵

    方式一:redis-sentinel /usr/local/sentinal/sentinal.conf

    方式二:redis-server /path/to/sentinel.conf --sentinel

    spring整合redis

    1.导入jar包

    2.配置Spring核心配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
        <!-- 配置jedis连接池 -->
        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <!-- 最大连接数 -->
            <property name="maxTotal" value="30" />
            <!-- 最大空闲连接数 -->
            <property name="maxIdle" value="10" />
            <!-- 每次释放连接的最大数目 -->
            <property name="numTestsPerEvictionRun" value="1024" />
            <!-- 释放连接的扫描间隔(毫秒) -->
            <property name="timeBetweenEvictionRunsMillis" value="30000" />
            <!-- 连接最小空闲时间 -->
            <property name="minEvictableIdleTimeMillis" value="1800000" />
            <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
            <property name="softMinEvictableIdleTimeMillis" value="10000" />
            <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
            <property name="maxWaitMillis" value="1500" />
            <!-- 在获取连接的时候检查有效性, 默认false -->
            <property name="testOnBorrow" value="true" />
            <!-- 在空闲时检查有效性, 默认false -->
            <property name="testWhileIdle" value="true" />
            <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
            <property name="blockWhenExhausted" value="false" />
        </bean>
        <!-- jedis整合spring单机版 -->
        <!-- <bean id="jedisClient" class="redis.clients.jedis.JedisPool">
            <constructor-arg name="host" value="192.168.26.128"/>
            <constructor-arg name="port" value="6379"/>
            <constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
        </bean> -->
        
        
        <!-- jedisCluster JedisCluster jedisClients = new JedisCluster -->
        <bean id="jedisClients" class="redis.clients.jedis.JedisCluster">
        <!-- ref引用了上面的配置 -->
            <constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
            <constructor-arg name="nodes">
                <set>
                    <bean class="redis.clients.jedis.HostAndPort">
                        <constructor-arg name="host" value="192.168.26.30"/>
                        <constructor-arg name="port" value="6379"/>
                    </bean>
                    <bean class="redis.clients.jedis.HostAndPort">
                        <constructor-arg name="host" value="192.168.26.30"/>
                        <constructor-arg name="port" value="6380"/>
                    </bean>
                    <bean class="redis.clients.jedis.HostAndPort">
                        <constructor-arg name="host" value="192.168.26.30"/>
                        <constructor-arg name="port" value="6381"/>
                    </bean>
                    <bean class="redis.clients.jedis.HostAndPort">
                        <constructor-arg name="host" value="192.168.26.30"/>
                        <constructor-arg name="port" value="6382"/>
                    </bean>
                    <bean class="redis.clients.jedis.HostAndPort">
                        <constructor-arg name="host" value="192.168.26.30"/>
                        <constructor-arg name="port" value="6383"/>
                    </bean>
                    <bean class="redis.clients.jedis.HostAndPort">
                        <constructor-arg name="host" value="192.168.26.30"/>
                        <constructor-arg name="port" value="6384"/>
                    </bean>
                </set>
            </constructor-arg>
        </bean>
    </beans>

    3.测试

    public static void main(String[] args) {
            //    读取spring 的配置文件
            ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-jedis.xml");
            JedisCluster jc = (JedisCluster) ac.getBean("jedisClients");
            jc.set("cluster", "集群");
            System.out.println(jc.get("cluster"));
        }
  • 相关阅读:
    Magical系列软件产品项目启动了
    IT从业者的学习规划 学习者系列文章开篇
    软件项目角色指南开篇
    使用CSS定位页面的“footer”
    项目管理知识体系指南【3】项目生命期与组织
    读书感受 软件设计师 你必须知道的.NET (C#类型存储方式分析)
    软件外包及其项目管理分析
    项目管理知识体系指南【1】开篇
    项目管理知识体系指南【4】单个项目管理过程
    软件设计师之路【1】开篇
  • 原文地址:https://www.cnblogs.com/huqi96/p/13124369.html
Copyright © 2011-2022 走看看