
【redis】
极客on之路
热爱技术,做有态度的技术人!
微信平台架构设计开发。支付技术,安全加密,金融证券
展开
-
Redis危险命令禁用keys、flushdb、flushall及解决方案
https://blog.youkuaiyun.com/wfy2695766757/article/details/95751044转载 2020-08-13 15:00:17 · 2710 阅读 · 0 评论 -
Spring + JedisCluster操作Redis(集群)
1.maven依赖:<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version> </dependency> 2.增加spring 配置<!-- ==========================JedisC转载 2020-06-23 19:18:52 · 702 阅读 · 0 评论 -
将Redis注册为服务的命令
# 注册服务redis-server --service-install redis.windows.conf# 启动服务redis-server --service-start# 停止服务redis-server --service-stop# 删除服务redis-server --service-uninstall原创 2020-06-17 14:37:07 · 573 阅读 · 0 评论 -
linux redis 设置密码
在服务器上,这里以linux服务器为例,为redis配置密码。1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,)(1)首先进入redis,如果没有开启redis则需要先开启:[root@iZ94jzcra1hZ bin]# redis-cli -p 6379127.0.0.1:6379>(2)查看当前redis有没...转载 2019-11-13 15:05:31 · 516 阅读 · 0 评论 -
SpringMVC+redis整合
https://www.cnblogs.com/wuxinliulei/p/5216712.html转载 2017-12-11 17:16:49 · 428 阅读 · 0 评论 -
Redis-sentinel哨兵模式集群方案配置
最近研究了redis的集群方案,第一个方案是创建 redis cluster,第二种方案就是用哨兵模式来进行主从替换以及故障恢复。一、sentinel介绍Redis Sentinel Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中Sentinel作用: 1):Master状态检测 2):如果Mast转载 2016-08-04 11:11:00 · 4346 阅读 · 0 评论 -
Redis禁用命令、危险命令及规避方法
FLUSHALL FLUSHDB 命令会清空数据,而且从不失败,对于线上集群非常危险。KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,也非常危险。如果从根本上规避这些风险呢?Redis提供了非常简单且有效的方法,直接在配置文件中设置禁用这些命令。设置非常简单,如下代码如下:rename-command FLUSHALL ""r转载 2016-08-15 09:37:52 · 3831 阅读 · 0 评论 -
阿里云服务器被挖矿minerd入侵的解决办法
上周末,更新易云盘的时候,发现阿里云服务器CPU很高,执行 top 一看,有个进程minerd尽然占用了90%多的CPU, 赶紧百度一下,查到几篇文章都有人遇到同样问题Hu_Wen遇到的和我最相似,下边是他的解决办法http://blog.youkuaiyun.com/hu_wen/article/details/51908597但我去查看启动的服务,尽然没有 lady 这个服务。 找转载 2016-08-15 09:37:06 · 3224 阅读 · 0 评论 -
redis配置认证密码
redis配置密码1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到[plain] view plain copy#requirepass foobared 去掉行前的注释,并修改密码为所需的密码,保存文件[plain] view plain c转载 2016-08-15 09:32:47 · 403 阅读 · 0 评论 -
redis key 过期时间
EXPIRE key 100设置了过期时间,100秒后,key将自动被删除。过期时间删除的方法有三种:1、删除这个key,使用del command2、用set or getset 命令会将key的expiration清空,事实上set和getset命令是替换了key对应的value,所以key的过期时间也就不复存在。所以,需要注意的是:incr,LPUSH,HSET命令是不会改变原创 2016-09-01 11:07:20 · 1279 阅读 · 1 评论 -
redis单线程模型分析
redis原理redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。不过,因为一般的内存操作都是简单存取操作,线程占用时间相对较短,主要问题在io上,因此,redis这种模型是合适的,但是如果某一个线程出现问题导致线程占用很长时间,那么reids的单线程模型效率可想而知.引自网络:总体来说快速的原因如下: 1)绝大部分转载 2016-09-01 10:20:09 · 389 阅读 · 1 评论 -
java使用Redis6–sentinel单点故障主从自动切换
Redis SentinelSentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中一、Sentinel作用:1):Master状态检测 2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave3):Master-Slave切换后,ma转载 2016-08-31 11:15:54 · 2420 阅读 · 0 评论 -
Spring-data-redis操作Redis的Sentinel
介绍Spring-Data-Redis项目(简称SDR)是对Redis的Key-Value数据存储操作提供了更高层次的抽象,提供了一个对几种主要的redis的Java客户端(例如:jedis,jredis,jdbc-redis等)的抽象,使开发中可以几乎完全屏蔽具体使用客户端的影响,使业务代码保持较强的稳定性。Spring-Data-Redis提供了一个基础的泛型RedisTemp转载 2016-08-31 11:10:20 · 651 阅读 · 2 评论 -
Redis JedisPoll 介绍
在多线程下使用Jedis 在不同的线程中使用相同的Jedis实例会发生奇怪的错误。但是创建太多的实现也不好因为这意味着会建立很多sokcet连接,也会导致奇怪的错误发生。单一Jedis实例不是线程安全的。为了避免这些问题,可以使用JedisPool, JedisPool是一个线程安全的网络连接池。可以用JedisPool创建一些可靠Jedis实例,可以从池中拿到Jedis的实例。这种方转载 2016-08-31 09:56:22 · 1449 阅读 · 2 评论 -
Java实现Redis分布式锁
1、背景:在多线程环境下,通常会使用锁来保证有且只有一个线程来操作共享资源。比如:object obj = new object();lock (obj) { //操作共享资源 }利用操作系统提供的锁机制,可以确保多线程或多进程下的并发唯一操作。但如果在多机环境下就不能满足了,当A,B两台机器同时操作C机器的共享资源时,就需要第三方的锁机制来保证在分布式环境下的转载 2016-09-01 10:45:17 · 5785 阅读 · 1 评论 -
处理:/var/redis/run/redis_6379.pid exists, process is already running or crashed
命令;service redis start/var/redis/run/redis_6379.pid exists, process is already running or crashed引起这类问题一般都是强制关掉电源或断电造成的,也是没等linux正常关机。科学的处理办法2种: 可用安装文件启动 redis-server /etc/redis/6379.con...转载 2018-12-03 15:52:58 · 5388 阅读 · 0 评论 -
redis 集群下 cluster info 详解
http://www.redis.cn/commands/cluster-info.html转载 2018-12-19 17:05:48 · 6360 阅读 · 0 评论 -
如何保证db与缓存的数据一致性
一、缓存双写问题先查询或者更新db,然后再更新缓存,这里可能出现的一种不一致的情况是db更新或查询成功,但是缓存更新失败了,这个不一致的问题可以通过重试更新缓存的方式来解决,保证最终一致性。但是这个方案只适用于只有一个更新缓存的线程的场景。如果有多个线程同时更新缓存呢,也就是双写,比如查询线程A查询到数据后要更新缓存,此时另一个更新线程B在完成db的更新后也要更新缓存,这个时候,线程A...转载 2019-08-01 10:20:03 · 429 阅读 · 0 评论 -
Spring Cloud Gateway 限流操作
开发高并发系统时有三把利器用来保护系统:缓存、降级和限流,API网关作为所有请求的入口,请求量大,我们可以通过对并发访问的请求进行限速来保护系统的可用性。常用的限流算法比如有令牌桶算法,漏桶算法,计数器算法等,在Zuul中我们可以自己去实现限流的功能(Zuul中如何限流在我的书《Spring Cloud微服务-全栈技术与案例解析》中有详细讲解),Spring Cloud Gateway的出现本...转载 2019-07-17 10:28:17 · 1175 阅读 · 1 评论 -
MySQL忽略主键冲突,避免重复插入数据的三种方式
方案一:ignore插入时检索主键列表,如存在相同主键记录,不更改原纪录,只插入新的记录。INSERT IGNORE INTOignore关键字所修饰的SQL语句执行后,在遇到主键冲突时会返回一个0,代表并没有插入此条数据。如果主键是由后台生成的(如uuid),我们可以通过判断这个返回值是否为0来判断主键是否有冲突,从而重新生成新的主键key。这是此ignore关键字比较常用的一...转载 2019-05-27 16:58:04 · 5449 阅读 · 0 评论 -
redis的两种存储方式string和byte对比
edis版本:2.9.1redis环境:redis集群(含哨兵模式,部在了两台Linux系统的机器上,每台机器四个节点,2主2备)存储内容:Submit对象(公司代码里面的,对象里只有手机号码和短信内容不同,其他字段值都一样)主要逻辑:存:生成submit对象-->对象转json/byte数组-->向redis存入json字符串/byte数组取:根据key值(先设定好)...转载 2019-05-16 14:33:45 · 2609 阅读 · 0 评论 -
redis实现阻塞轮训队列
redis实现队列有数据丢失的风险,在一些不要求高可用的需求里,可以在不引入消息队列的情况下,实现轮训队列。java客户端实现代码起个轮训线程@Override public void run() { while (true) { Jedis jedis = RedisUtil.getJedis(); try {...转载 2019-05-14 17:42:45 · 1562 阅读 · 0 评论 -
Java利用Redis实现消息队列
应用场景为什么要用redis? 二进制存储、java序列化传输、IO连接数高、连接频繁一、序列化 这里编写了一个java序列化的工具,主要是将对象转化为byte数组,和根据byte数组反序列化成java对象;主要是用到了ByteArrayOutputStream和ByteArrayInputStream;注意:每个需要序列化的对象都要实现Serializable接口;其代码如...转载 2019-05-14 17:30:52 · 2367 阅读 · 0 评论 -
spring整合redis单机版与redis集群版
https://blog.youkuaiyun.com/qq_30764991/article/details/81606430转载 2019-05-09 15:04:19 · 323 阅读 · 0 评论 -
生产redis client 链接报:ERR max number of clients reached 含义: 达到最大客户端数错误
1、通过netstat 命令查看TCP又11822个连接 (netstat命令是一个监控TCP/IP网络的非常有用的工具)2、默认redis最大的连接数10000 ,但是此时无法连接redis客户端3、因为redis无法重启,否则会导致大量的应用无法访问,解决办法停止连接数最多的服务器应用4、只能在线调整参数,进入redis客户端,修改最大连接数5、并且调整timeout (当一...转载 2019-05-05 11:01:43 · 1764 阅读 · 0 评论 -
redis 存储对象 的三种方式
方式一:序列化操作public class SerializeUtil { /* * 序列化 * */ public static byte[] serizlize(Object object){ ObjectOutputStream oos = null; ByteArrayOutputStream baos = null...转载 2019-03-26 21:36:45 · 33898 阅读 · 5 评论 -
支撑1万并发请求的秒杀架构设计
一、目标每秒处理1万并发请求不影响其他业务的正常运转避免超卖问题预防作弊行为二、架构设计1、充分利用cdn来进行静态资源的响应,这在秒杀开始前夕,用户频繁刷新页面会有帮助2、活动开始后,用户点击抢购,则调用抢购api,这个请求会首先到达Nginx负载服务器,由其进行分发,确保每台实际的api服务可以接收到处理能力范围内的请求数量。3、实际的api服务器并不执行秒杀业务相关逻...转载 2019-02-19 09:42:51 · 2835 阅读 · 0 评论 -
Jedis、JedisPool、Jedis分布式实例介绍
一、相关jar包 主要用到的是jedis的核心包,笔者用到的是2.1.0版;另根据“池”的应用等还需要用到相关jar包。下图是笔者建立的简单的jedis测试project图: jar包的文档可参考:http://www.boyunjian.com/javadoc/org.apache.servicemix.bundles/org.apache.ser转载 2016-08-31 10:17:58 · 611 阅读 · 1 评论 -
使用Redis的Java客户端Jedis
前一篇文章《Redis命令指南》讲解了通过命令行的方式执行Key=>的存储操作,在实际的项目开发中,各种语言是使用Redis的客户端库来与Redis交互。针对Java语言,Redis官方推荐Jedis。Jedis提供了多种操作方式:单机单连接方式、单机连接池方式、多机分布式+连接池方式。预备jedis-2.5.2commons-pool2-2.2.jar使用单连转载 2016-08-08 10:52:02 · 386 阅读 · 0 评论 -
Redis学习笔记(十三)redis配置文件redis.conf中文版(基于2.4)
这篇文章主要介绍了redis配置文件redis.conf中文版(基于2.4),对英文不好的朋友是非常好的参考,需要的朋友可以参考下复制代码代码如下:# Redis示例配置文件# 注意单位问题:当需要设置内存大小的时候,可以使用类似1k、5GB、4M这样的常见格式:## 1k => 1000 bytes# 1kb => 1024转载 2016-07-27 15:37:10 · 400 阅读 · 0 评论 -
Redis学习笔记(十一)Redis-benchmark为Redis性能测试工具
Redis-benchmark为Redis性能测试工具。指令说明:[ruby] view plain copy print?Usage: redis-benchmark [-h ] [-p ] [-c ] [-n [-k ] -h Server hostname (default 127.0.0.1)转载 2016-07-14 17:24:38 · 594 阅读 · 0 评论 -
Redis 学习笔记(十)Redis sort 排序命令详解
redis sort命令用法1、命令描述返回或保存给定列表、集合、有序集合key中经过排序的元素。排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。2、一般sort用法最简单的sort使用方法是sort key和sort key desc。sort key:返回键值从小到大排序的结果。sort key desc:返回键值从大到小排序的结果。假设pri转载 2016-07-07 14:20:51 · 2488 阅读 · 0 评论 -
Redis学习笔记(九)redis 配置文件详解
# redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,# 通常的格式就是 1k 5gb 4m 等酱紫:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes#转载 2016-07-07 11:24:52 · 893 阅读 · 0 评论 -
Redis学习笔记(七)nginx+tomcat反向代理下使用tomcat-redis-session-manager进行session共享中值得注意的一个问题
公司目前项目使用nginx反向代理+多个tomcat进行负载均衡,之前使用ip_hash策略进行session控制。近期有考虑不再使用ip_hash策略,所以需要进行session共享。根据项目实际情况,拟考虑使用开发配置比较简单,应用比较广泛的tomcat-redis-session-manager方式进行session共享,具体设置请参考 http://www.cnblogs.com/转载 2016-05-31 15:06:18 · 714 阅读 · 1 评论 -
Redis学习笔记(六)Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享
CentOS安装Nginxhttp://centoscn.com/CentosServer/www/2013/0910/1593.htmlCentOS安装Tomcathttp://blog.youkuaiyun.com/zhuying_linux/article/details/6583096CentOS安装Redishttp://www.cnblogs.com/zhuhongbao/ar原创 2016-05-31 14:56:58 · 2682 阅读 · 0 评论 -
Redis学习笔记(五)Linux下redis的安装
第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: 1 2 3 4 5 6 7 $ mkdir /...转载 2016-04-23 18:17:42 · 647 阅读 · 0 评论 -
Redis学习笔记(二)Redis持久化
概述Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存储在内存中的数据将会丢失,在很多情况下是无法容忍这样的事情的。所以,我们需要将内存中的数据持久化!典型的需要持久化数据的场景如下:将Redis作为数据库使用;将Redis作为缓存服务器使用,但是缓存miss后会对性能造成很大影响,所有缓存同时失效时会造成服务雪崩,无法响应。转载 2016-03-30 13:18:43 · 383 阅读 · 0 评论 -
Redis 学习笔记(十四)Redis存储结构优化
1.zipmap优化hash:前面谈到将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新建一个hash对象时开始是用zipmap来存储的。这个zipmap其实并不是hash table,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据存储开销。尽管zipmap的添加,删除,查找都是O(n),但是由于一般对象的fiel转载 2016-07-28 10:25:55 · 737 阅读 · 0 评论 -
Redis学习笔记(十五)Redis数据类型底层编码和实现原理
对象 对象type属性值字符串对象REDIS_STRING列表对象REDIS_LIST哈希对象REDIS_HASH集合对象REDIS_SET有序集合对象REDIS_ZSETREDIS底层编码表可以看出来,redis底层共有八中不同的数据结构对应 编码原创 2016-07-28 10:38:28 · 901 阅读 · 0 评论 -
win7 64位安装redis 及Redis Desktop Manager使用
写基于dapper的一套自动化程序,看到 mgravell 的另一个项目,StackExchange.Redis,之前在.NET上用过一段时间redis,不过一直是其它的驱动开发包,这个根据作者介绍,是个高性能的线程安全的.NET c#开发redis客户端的库。说的很吊,不过我确信mgravell出品的东西都是精品。说多无益,先把redis在win上的开发环境搭一下。redis官方没有转载 2016-08-18 12:00:59 · 637 阅读 · 0 评论