解决tomcat部署项目中碰到的几个问题-编程思维

在tomcat上部署项目并进行测试,经常会碰到各种问题。在不同的操作系统上部署,对问题的解决也会有一些差异。 1 发现问题 1.1 项目部署 先将项目达成war包,放到tomcat的webapps目录下,然后启动tomcat,在浏览器中键入项目的部署地址,进行访问,查看效果。 在windows系统中,利用cmd,cd到tomcat安装目录,在bin文件夹中使用shutdown.bat和start

centos7中安装、配置、验证、卸载redis-编程思维

本文介绍在centos7中安装、配置、验证、卸载redis等操作,以及在使用redis中的一些注意事项。 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 cd /usr/local 键入以下命令,新建一个redis目录,用于放置redis软件。 mkdir redis 2 下载并解压redis文件 下载redis安装包 wget http

2分钟内完成2000万key数据的迁移-编程思维

Redis 是目前最流行的键值对存储数据库,凭借高性能和丰富的数据类型的特性,不仅可以作为缓存,还可以作为一个可持久化的数据库存储。随着业务的发展和版本的迭代,必然会遇到内存不足、集群节点不够和 BUG 等一系列问题。为了防止这些问题导致的系统故障,常常会把对内存、集群节点扩缩容和版本升级等操作作为工作考核的重要一项。这些操作都涉及了数据的迁移,所以,提供高效、安全的不停机数据迁移方案是非常有必

简单接口限流的设计与实现-编程思维

简单接口限流的设计与实现集群环境下 有一个接口限制 1秒钟只能访问5次。去写一个方法请求这个接口 如何控制这个方法 不超过这个限制 如果超过则顺延到下一秒? 解决方案要实现对接口的访问限制,确保每秒钟只能访问5次,可以按照以下步骤进行操作: 1.创建一个计数器变量,用于记录当前秒内已经发送的请求次数。 2.在发送请求之前,检查计数器的值。 3.如果计数器

redis 哨兵-编程思维

redis 哨兵 1. 哨兵的作用 检查Master和Slave是否运作正常,实现主从节点故障转移。 它会监测主节点是否存活,如果发现主节点挂了,它就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端。 监控 选主 通知 哨兵节点每隔1s向所有主从节点发送ping命令,节点收到后会进行响应 如果哨兵节点在down-after-milliseconds 时

redis主从复制-编程思维

Redis 主从复制 Redis主从结构 所有的数据修改只在主服务器上进行,然后将最新的数据同步给从服务器,这样就使得主从服务器的数据是一致的。 从连接主 从服务器请求连接主服务器 服务器 B 执行这条命令 replicaof <服务器 A 的 IP 地址> <服务器 A 的 Redis 端口号> 从服务器发送psync命令 psync runID offset

redis系列22:redis 的pub/sub能力-编程思维

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓存带来的革命 Redis系列8:Bitmap实现亿万级数据计算 Redis系列9:Geo 类型赋

redis 为什么这么快?-编程思维

前言   作为一名后端软件工程师,工作中你肯定和 Redis 打过交道。但是Redis 为什么快呢?很多人只能答出Redis 因为它是基于内存实现的,但是对于其它原因都是模棱两可。 那么今天就一起来看看是Redis 为什么快吧:                 Redis 为什么这么快?   一、基于内存实现   Redis 是基于内存的数据库,那不可避免的就要与磁盘数据库做对比。对于磁盘数

redis常用命令-编程思维

目录起因配置bind端口连接开启连接关闭连接命令key相关字符串相关hash相关List相关Set相关SortedSet相关GEO相关服务器命令引用 起因 从标题来看,似乎这篇博文没有看下去的必要了,谁用redis还敲命令行,不都是GUI嘛。 确实,GUI现在特别的好用,直观、高效还美观。 但是,在生产环境下GUI可能并没有那么香。。。。。。 事情是这样的,线上环境进行了大版本升级,然后一堆问题

redis系列21:缓存与数据库的数据一致性讨论-编程思维

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓存带来的革命 Redis系列8:Bitmap实现亿万级数据计算 Redis系列9:Geo 类型赋

初识redis与桌面客户端-编程思维

Redis介绍 什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。 Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 与传统数据库不同的是 Redis 的数据是存在内存中的,所以

redis的五大数据类型的数据结构-编程思维

概述   Redis底层有六种数据类型包括:简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。这六种数据结构五大数据类型关系如下: String:简单动态字符串 List:双向链表、压缩列表 Hash:压缩列表、哈希表 Sorted Set:压缩列表、跳表 Set:哈希表、整数数组           数据类型和底层数据结构对应关系     每种数据结构特性不一样,操作时间也不

redis分布式锁,setnx+lua脚本的java实现-编程思维

1 前言 在现在工作中,为保障服务的高可用,应对单点故障、负载量过大等单机部署带来的问题,生产环境常用多机部署。为解决多机房部署导致的数据不一致问题,我们常会选择用分布式锁。 目前其他比较常见的实现方案我列举在下面: 基于缓存实现分布式锁(本文主要使用redis实现) 基于数据库实现分布式锁 基于zookeeper实现分布式锁 本文是基于redis缓存实现分布式锁,其中使用了setnx命令加

redis系列20:lfu内存淘汰算法分析-编程思维

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓存带来的革命 Redis系列8:Bitmap实现亿万级数据计算 Redis系列9:Geo 类型赋

redis系列19:lru内存淘汰算法分析-编程思维

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓存带来的革命 Redis系列8:Bitmap实现亿万级数据计算 Redis系列9:Geo 类型赋

redis专题-秒杀-编程思维

Redis专题-并发/秒杀 开局一张图,内容全靠“编”。 昨天晚上在群友里看到有人在讨论库存并发的问题,看到这里我就决定写一篇关于redis秒杀的文章。 1、理论部分 我们看看一般我们库存是怎么出问题的 其实redis提供了两种解决方案:加锁和原子操作。 1.1、加锁 加锁:其实非常常见,读取数据前,客户端先获取锁,再操作。 当客户端获得锁后,一直持有直到客户端完成操作,再释放。 怎么操作