打赏

centos7中redis安装配置

1.官网下载对应版本,本例以5.0.5为例

2.tar -zxvf xxxxx 并mv到安装目录

3.进入redis-5.0.5目录下,执行编译命令

make

4.编译完成后,经redis安装到指定目录下

make PREFIX=/usr/local/redis install

5.安装完成后进入redis目录下,会发现有一个bin目录

6.启动

方式一,进入/usr/local/redis/bin里执行启动命令(默认端口为:6379)

方式二,后台启动,将redis-5.0.5目录下的redis.conf文件复制到/usr/local/redis/bin下

cp redis.conf /usr/local/redis/bin/

修改redis.conf设置为后台启动,将daemonize no改为daemonize yes即可

./redis-server /usr/local/redis/bin/redis.conf
由于redis.conf与redis-serve在同一级目录,所以执行下边命令即可
./redis-server redis.conf

7.关闭redis,进入/usr/local/redis/bin目录下,执行命令

./redis-cli shutdown

查看redis进程命令

ps -ef | grep -i redis

8.客户端操作

进入/usr/local/redis/bin目录下,执行命令

./redis-cli

然后就可以设置并取值了

9.高级配置

①允许远程连接redis,redis默认只允许连接Localhost,若需要其他机器连接,需要进行配置远程连接,将配置文件redis.conf中的bind 127.0.0.1注释掉,

# bind 127.0.0.1

找到配置文件redis.conf中protected mode,默认protected mode yes,需要将其改为protected mode no

protected mode no

远程连接配置完成,记得保存配置哈。

SpringBoot连接redis

②添加依赖

<!--Redis依赖-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

②配置文件配置redis

spring:
    application:
    name: order-service
 redis:
    database: 0
    #远程redis地址
    host: IP地址 
    #redis默认端口就是6379
    port: 6379
    timeout: 2000

③简单应用

private StringRedisTemplate redisTemplate;
...........................................
  private Object saveOrderFail(int userId, int productId, HttpServletRequest request){
        //监控报警 start
        String saveOrderKey="save-order";
        String sendValue = redisTemplate.opsForValue().get(saveOrderKey);
        String ip=request.getRemoteAddr();
        //注意,这里需要异步,不能同步,不然此处阻塞的话(发短息耗时的话)不会继续向下走
        new Thread(()->{
            if(StringUtils.isBlank(sendValue)){
                System.out.println("调用发短信接口去发送短信;用户下单失败,请马上处理;"+ip);
                //此时调用发短信接口去发送短信,略过

                /**
                 * 在Redis里放入数据,防止一直不停的发短信
                 * 间隔时间20秒(正常比这个数据久,这里为了测试先设置20秒)
                 */
                redisTemplate.opsForValue().set(saveOrderKey,"save-order-fail",20, TimeUnit.SECONDS);
            }else{
                System.out.println("已经发生过短信了,20秒内不要发了");
            }
        }).start();
        
        //监控报警 end
        Map<String,Object> msg=new HashMap<>();
        msg.put("code",-1);
        msg.put("msg","抢购人数太多,稍后重试");
        return msg;
    }

 

posted @ 2019-09-25 15:07  不像话  阅读(3753)  评论(0编辑  收藏  举报