• Redis


     1.Install  2.QuickStart         last


    1.Install

    1. build:
      make
      make V=1 #详细构建,输出更多的信息
      make 32bit #构建32位运行环境的二进制目标
      make test #构建后,测试一下
      make distclean #清理
      View Code
    2. install:
      #方法1
      #安装到 /usr/local/bin
      make install
      
      #方法2
      #自定义安装目录
      make PREFIX=/path/to/ install
      View Code
    3. configure:
      #获取配置文件
      cp redis.conf /path/to/conf
      
      #配置项目
      bind 192.168.0.244
      port 6379
      daemonize yes
      loglevel notice
      maxmemory 2mb
      maxmemory-policy allkeys-lru
      View Code
    4. running:
      cp redis.conf /path/to/conf
      cd /path/to
      
      # 启动方式1
      bin/redis-server conf/redis.conf
      
      # 启动方式2
      bin/redis-server --port 9999
      
      #启动方式3
      bin/redis-server --loglevel debug
      View Code


      默认配置是没有访问密码的,可以测试一下

      [root@localhost redis]# /usr/local/redis/bin/redis-cli 
      127.0.0.1:6379> ping
      PONG
      127.0.0.1:6379> set user admin
      OK
      127.0.0.1:6379> get user
      "admin"
      127.0.0.1:6379> exit
      [root@localhost redis]# /usr/local/redis/bin/redis-cli 
      127.0.0.1:6379> get user
      "admin"
      View Code
    5. 设置密码:配置文件、命令行;
      requirepass develop123456789
      View Code

      验证密码:

      [root@Develop2-Server01 redis]# redis-cli -h 192.168.0.244 
      192.168.0.244:6379> get foo
      (error) NOAUTH Authentication required.
      192.168.0.244:6379> auth develop123456789
      OK
      192.168.0.244:6379> config get requirepass
      1) "requirepass"
      2) "develop123456789"
      View Code

      修改密码:

      192.168.0.244:6379> config set requirepass 123
      OK
      192.168.0.244:6379> quit
      [root@Develop2-Server01 redis]# redis-cli -h 192.168.0.244 
      192.168.0.244:6379> auth 123
      OK
      View Code
    6. 服务托管
      启动脚本
      #! /bin/bash
      #
      # network       Bring up/down networking
      #
      # chkconfig: 35 10 90
      # description: Activates/Deactivates all network interfaces configured to 
      #              start at boot time.
      #
      
      case "$1" in
        start)
          /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf &>/dev/null
          ;;
        *)
              echo $"Usage: $0 {start}"
      esac
      exit 1
      View Code

    2.QuickStart

    • 导包:spring-data-redis、jedis、slf4j-nop、junit、spring-test.
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>com.pinyougou.demo.redis</groupId>
          <artifactId>redisdemo1</artifactId>
          <version>1.1</version>
      
          <properties>
              <spring.version>4.2.4.RELEASE</spring.version>
          </properties>
          <dependencies>
              <!-- Spring -->
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-beans</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-webmvc</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jdbc</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-aspects</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jms</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-context-support</artifactId>
                  <version>${spring.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-test</artifactId>
                  <version>${spring.version}</version>
              </dependency>
      
      
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.9</version>
              </dependency>
              <dependency>
                  <groupId>redis.clients</groupId>
                  <artifactId>jedis</artifactId>
                  <version>2.8.1</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework.data</groupId>
                  <artifactId>spring-data-redis</artifactId>
                  <version>1.7.2.RELEASE</version>
              </dependency>
      
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-nop</artifactId>
                  <version>1.7.25</version>
                  <scope>test</scope>
              </dependency>
      
      
          </dependencies>
      </project>
      View Code
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>cn.argor</groupId>
          <artifactId>redisdemo</artifactId>
          <version>1.1</version>
          
          <dependencies>
              <dependency>
                  <groupId>org.springframework.data</groupId>
                  <artifactId>spring-data-redis</artifactId>
                  <version>1.7.2.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.9</version>
              </dependency>
              <dependency>
                  <groupId>redis.clients</groupId>
                  <artifactId>jedis</artifactId>
                  <version>2.8.2</version>
              </dependency>
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-nop</artifactId>
                  <version>1.7.25</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-test</artifactId>
                  <version>4.2.6.RELEASE</version>
              </dependency>
          </dependencies>
      </project>
      View Code
    • 配置文件
      • spring
        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
            xmlns:context="http://www.springframework.org/schema/context"
            xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:cache="http://www.springframework.org/schema/cache"
            xsi:schemaLocation="http://www.springframework.org/schema/beans   
                    http://www.springframework.org/schema/beans/spring-beans.xsd   
                    http://www.springframework.org/schema/context   
                    http://www.springframework.org/schema/context/spring-context.xsd   
                    http://www.springframework.org/schema/mvc   
                    http://www.springframework.org/schema/mvc/spring-mvc.xsd 
                    http://www.springframework.org/schema/cache  
                    http://www.springframework.org/schema/cache/spring-cache.xsd">
        
            <context:property-placeholder location="classpath*:properties/*.properties" />
        
            <!-- redis 相关配置 -->
            <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
                <property name="maxIdle" value="${redis.maxIdle}" />
                <property name="maxWaitMillis" value="${redis.maxWait}" />
                <property name="testOnBorrow" value="${redis.testOnBorrow}" />
            </bean>
        
            <bean id="JedisConnectionFactory"
                class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
                p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}"
                p:pool-config-ref="poolConfig" />
        
            <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
                <property name="connectionFactory" ref="JedisConnectionFactory" />
            </bean>
        
        </beans>  
        View Code
      • redis
        # Redis settings 
        # server IP 
        redis.host=127.0.0.1
        # server port 
        redis.port=6379
        # server pass 
        redis.pass=
        # use dbIndex 
        redis.database=0
        # u63A7u5236u4E00u4E2Apoolu6700u591Au6709u591Au5C11u4E2Au72B6u6001u4E3Aidle(u7A7Au95F2u7684)u7684jedisu5B9Eu4F8B 
        redis.maxIdle=300
        # u8868u793Au5F53borrow(u5F15u5165)u4E00u4E2Ajedisu5B9Eu4F8Bu65F6uFF0Cu6700u5927u7684u7B49u5F85u65F6u95F4uFF0Cu5982u679Cu8D85u8FC7u7B49u5F85u65F6u95F4(u6BEBu79D2)uFF0Cu5219u76F4u63A5u629Bu51FAJedisConnectionExceptionuFF1B  
        redis.maxWait=3000
        # u5728borrowu4E00u4E2Ajedisu5B9Eu4F8Bu65F6uFF0Cu662Fu5426u63D0u524Du8FDBu884Cvalidateu64CDu4F5CuFF1Bu5982u679Cu4E3AtrueuFF0Cu5219u5F97u5230u7684jedisu5B9Eu4F8Bu5747u662Fu53EFu7528u7684  
        redis.testOnBorrow=true
        View Code
      • log
        ### set 日志级别 - for more verbose logging change 'info' to 'debug' ###
        log4j.rootLogger=info, stdout
        
        ### 输出信息到控制抬 ###
        log4j.appender.stdout = org.apache.log4j.ConsoleAppender
        log4j.appender.stdout.Target = System.out
        log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
        log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
        
        ### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
        #log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
        #log4j.appender.D.File = E://logs/log.log
        #log4j.appender.D.Append = true
        #log4j.appender.D.Threshold = DEBUG 
        #log4j.appender.D.layout = org.apache.log4j.PatternLayout
        #log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
        
        ### 输出ERROR 级别以上的日志到=E://logs/error.log ###
        #log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
        #log4j.appender.E.File =E://logs/error.log 
        #log4j.appender.E.Append = true
        #log4j.appender.E.Threshold = ERROR 
        #log4j.appender.E.layout = org.apache.log4j.PatternLayout
        #log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
        View Code
    • 测试类
      • 值类型:增加 boundValueOps().set()、查询 boundValueOps().get()
        package test;
        
        import org.junit.runner.RunWith;
        import org.junit.Test;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.data.redis.core.RedisTemplate;
        import org.springframework.test.context.ContextConfiguration;
        import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
        
        @RunWith(SpringJUnit4ClassRunner.class)
        @ContextConfiguration(locations="classpath:spring/applicationContext-redis.xml")
        public class TestValue {
            @Autowired
            private RedisTemplate<String, String> redisTemp;
            
            @Test
            public void setValue() { 
                redisTemp.boundValueOps("name").set("argor");
            }
            
            @Test
            public void getValue() {
                
                String value = redisTemp.boundValueOps("name").get();
                System.out.println(value);
            }
            
            @Test
            public void deleteValue() {
                redisTemp.delete("name");
            }
        }
        View Code

         Set 集合:增加 boundSetOps().add()、查询 boundSetOps().members()

        package test;
        
        import java.util.Set;
        
        import org.junit.Test;
        import org.junit.runner.RunWith;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.data.redis.core.RedisTemplate;
        import org.springframework.test.context.ContextConfiguration;
        import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
        
        @RunWith(SpringJUnit4ClassRunner.class)
        @ContextConfiguration(locations="classpath:*redis.xml")
        public class TestSet {
            @Autowired
            private RedisTemplate<String, String> redisTemp;
            
            @Test
            public void setValues() {
                redisTemp.boundSetOps("nameSet").add("root");
                redisTemp.boundSetOps("nameSet").add("admin");
                redisTemp.boundSetOps("nameSet").add("argor");
                getValues();
            }
            
            @Test
            public void getValues() {
                Set<String> set = redisTemp.boundSetOps("nameSet").members();
                System.out.println(set);
            }
            
            @Test
            public void delValues() {
                redisTemp.delete("nameSet");
                getValues();
            }
            
            @Test
            public void delValue() {
                redisTemp.boundSetOps("nameSet").remove("root");
                getValues();
            }
            
        }
        View Code

        List 集合

        package test;
        
        import java.util.List;
        
        import org.junit.Test;
        import org.junit.runner.RunWith;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.data.redis.core.RedisTemplate;
        import org.springframework.test.context.ContextConfiguration;
        import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
        
        @RunWith(SpringJUnit4ClassRunner.class)
        @ContextConfiguration(locations = "classpath:*redis.xml")
        public class TestList {
            @Autowired
            private RedisTemplate<String, String> redisTemp;
        
            @Test
            public void putRightValues() {
                redisTemp.boundListOps("nameListRight").rightPush("admin");
                redisTemp.boundListOps("nameListRight").rightPush("root");
                redisTemp.boundListOps("nameListRight").rightPush("argor");
        
                getValuesRight();
            }
        
            @Test
            public void getValuesRight() {
                Long len = redisTemp.boundListOps("nameListRight").size();
                List<String> list = redisTemp.boundListOps("nameListRight").range(0, len - 1);
                System.out.println(list);
            }
        
            @Test
            public void putLeftValues() {
                redisTemp.boundListOps("nameListLeft").leftPush("sunny");
                redisTemp.boundListOps("nameListLeft").leftPush("bruce");
                redisTemp.boundListOps("nameListLeft").leftPush("tess");
        
                getValuesLeft();
            }
        
            @Test
            public void getValuesLeft() {
                Long len = redisTemp.boundListOps("nameListLeft").size();
                List<String> list = redisTemp.boundListOps("nameListLeft").range(0, len - 1);
                System.out.println(list);
            }
        
            @Test
            public void destoryListRight() {
                destory("nameListRight");
                getValuesRight();
            }
        
            @Test
            public void destoryListLeft() {
                destory("nameListLeft");
                getValuesLeft();
            }
        
            public void destory(String nameList) {
                redisTemp.delete(nameList);
            }
        
        }
        View Code

        Hast 集合

        package test;
        
        import java.util.List;
        import java.util.Set;
        
        import org.junit.Test;
        import org.junit.runner.RunWith;
        import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.data.redis.core.RedisTemplate;
        import org.springframework.test.context.ContextConfiguration;
        import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
        
        @RunWith(SpringJUnit4ClassRunner.class)
        @ContextConfiguration(locations = "classpath:*redis.xml")
        public class TestHash {
            @Autowired
            private RedisTemplate<String, String> redisTemp;
        
            @Test
            public void setValue() {
                redisTemp.boundHashOps("nameHash").put("name", "argor");
                redisTemp.boundHashOps("nameHash").put("age", "33");
                redisTemp.boundHashOps("nameHash").put("salary", "350");
                
                getKeys();
                getValues();
            }
            
            @Test
            public void getKeys() {
                Set<Object> keys = redisTemp.boundHashOps("nameHash").keys();
                System.out.println(keys);
            }
            
            @Test
            public void getValues() {
                Set<Object> keys = redisTemp.boundHashOps("nameHash").keys();
                for (Object k: keys) {
                    Object value = redisTemp.boundHashOps("nameHash").get(k);
                    System.out.println(value);
                }
            }
        
            @Test
            public void destory() {
                redisTemp.delete("nameHash");
                
                getKeys();
                getValues();
            }
        }
        View Code

    redis .

    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    win和linux简单排查思路
    应急响应概述
    S2-057复现
    七十二:内网安全-域横向CS&MSF联动及应急响应初始
    七十一:内网安全-域横向网络&传输&应用层隧道技术
    七十:内网安全-域横向内网漫游Socks代理隧道技术
    六十九:内网安全-域横向CobalStrike&SPN&RDP
    六十八:内网安全-域横向PTH&PTK&PTT哈希票据传递
    信息泄露漏洞详解
    文件上传漏洞详细解析
  • 原文地址:https://www.cnblogs.com/argor/p/9869215.html
Copyright © 2020-2023  润新知