Redis

centos7下redis6的安装

℡╲_俬逩灬. 提交于 2020-08-20 09:31:07
redis的安装 安装环境 redis-6.0.6 centos 7 下载与解压 下载地址:https://redis.io/download 下载至 /usr/local 目录下,并解压 # cd /usr/local # wget wget http://download.redis.io/releases/redis-6.0.6.tar.gz # tar -zxvf redis-6.0.6.tar.gz 如果没有安装 wget ,先安装 yum install -y wget 。 安装 make之前确保安装了gcc,未安装则需安装 yum install -y gcc 。 # cd redis-6.0.6 # make # make install PREFIX=/usr/local/redis 具体安装过程可以查询redis-6.0.6目录下的README.md文件。 make命令时linux提供的一个编译命令(类似java中的javac命令),它会在当前目录下查找Makefile文件,根据里面的内容进行安装,与执行maven的mvn命令时,会去查找当前目录下的pom.xml类似。 安装过程中可能会报一个如下的错误: server.c: In function ‘main’: server.c:5011:11: error: ‘struct redisServer’ has

Redis DeskTop Manager 使用教程

独自空忆成欢 提交于 2020-08-20 09:16:04
redis desktop manager windows 是一款能够跨平台使用的开源性redis可视化工具。 redis desktop manager 主要针对redis开发设计,拥有直观强大的可视化界面,具有完善全面的数据操作功能,可以针对目标key执行rename,delete,addrow,reload value操作,支持通过SSH Tunnel连接,用户可以通过它对Redis进行操作管理,简化原有的命令语言,充分发挥Redis的特性。 Redis Desktop Manager 简单的来讲就是Redis可视化工具,可以让我们看到Redis中存储的内容。 【基本介绍】 redis desktop manager是一款功能强大的redis数据库管理软件,可以帮助用户轻松快速的查看与操控整个数据库。redis desktop manager不仅拥有十分简洁直观的操作界面,而且所有功能信息一目了然,是广大用户必备的数据库管理神器。 redis desktop manager具有操作简单、方便快捷、功能完善、性能稳定等优点,支持用户采用可视化操作界面对数据库进行各方面工作,不管是新手用户还是专业的开发人员,该软件都是你管理数据库的最佳帮手。 Redis Desktop Manager for windows是一款可以跨平台的redis可视化工具,兼容win、mac等操作系统

为什么要看源码、如何看源码,高手进阶必看

让人想犯罪 __ 提交于 2020-08-20 09:14:24
作者:xybaby www.cnblogs.com/xybaby/p/10794700.html 由于项目的需求,最近花了较多的时间来看开源项目的代码,在本文中,简单总结一下对 为什么要看源码、如何看源码 这两个问题的思考。 看源码的意义 看源码只是一种方法、手段,而不是目的。我也曾经给自己制定过“阅读xxx源码”的目标,现在看起来真的很蠢,一点不smart(specific、measurable、attainable、relevant、time-bound)。 只有搞清楚了阅读代码的目标,才能有的放矢,抓住重点,高效达成任务。 看源码的意义总结起来包含但不限于以下几点: 一、解决问题(BUG) 只要是代码,就会有bug,只是说bug的多与少、深与浅罢了。现在大家都喜欢发布、使用开源项目,不同的开源项目社区成熟度、代码质量又会有较大的差异,遇到bug就不足为奇了。 当然,遇到bug肯定是先在网上搜索是否有类似的问题,一般可以在google、Stack Overflow、项目的issues里面有对应的关键词搜索。如果搜不到,那么就只能看源码解决了 二、知其所以然 我在[如何学习新技术、团队技术选型时要注意些什么][Link 1]里面提到过,如果我们需要将一个开源项目用到自己的项目中,那么就必须了解这项项目的优缺点,并深知原理,对部分细节(尤其是项目的优势、feature)进行深入研究

Spring Boot 应用部署流程

拥有回忆 提交于 2020-08-20 09:03:19
在本机操作,执行以下步骤启动项目 1、从Github上下载源码 git clone https://github.com/ChinaSilence/any-video.git 2、在数据库中建库,建表 在数据下执行 database.sql 文件 3、修改配置文件 src/main/resources/application.yml # Tomcat 配置 server: port: 80 # 数据库 及 Redis 配置 spring: redis: host: [Redis服务器地址] port: [Redis端口号] password: [Redis客户端密码] datasource: url: [数据库连接地址] driver-class-name: org.mariadb.jdbc.Driver username: [数据库账号] password: [数据库密码] sql-script-encoding: utf-8 mail: host: [邮件提供方地址] username: [邮箱账号] password: [邮箱密码] properties: mail: smtp: auth: false starttls: enable: false required: false # Mybatis 配置 mybatis: config-location:

redis主从+哨兵sentinel+VIP高可用结构

守給你的承諾、 提交于 2020-08-20 08:56:11
前言 哨兵sentinel是redis自带的高可用程序,可以发现并自动切换主从状态的redis服务配置,而且哨兵sentinel还可以支持管理多套redis主从. 而应用可以通过类似jedis的驱动直接连接哨兵,来实现高可用.jedis会在哨兵sentinel里发现真实的主库地址,然后让程序连上真实主库地址操作. 不过这个架构有三个问题,第一,应用程序的配置要实现这个功能的话就要从连接真实IP的redis改成连接哨兵.第二,如果哨兵挂了,应用会报错而无法切换(3.2还会出现).第三,如果一套哨兵管理多套redis主从,并不是很好管理. 解决的方法有两个,一个是在哨兵前面加类似nginx的负载均衡来控制jedis访问哨兵地址,另一个就是在redis主从上加入高可用vip的操作来代替jedis直连哨兵,因为哨兵sentinel支持切换发生时接入脚本操作. 这篇文章说的就是加入高可用vip方式. 哨兵sentinel通信原理 在讲主题之前,我想想讲一下哨兵sentinel的原理. 通讯原理: 当一个完全没接入哨兵sentinel的redis主从里,第一个哨兵sentinel主动和redis主库通信,询问有没有其他的redis从库和哨兵sentinel连接信息.如果没有,这个哨兵sentinel就创建配置,等待同步其他哨兵信息. 然后,第二个哨兵连进redis主库

Redis系列-存储篇list主要操作命令

穿精又带淫゛_ 提交于 2020-08-20 08:30:40
Redis系列-存储篇list主要操作命令小结 在总结list之前,先要弄明白几个跟list相关的概念: 列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出。 表头元素:列表最左端第一个元素。 表尾元素:列表最右端的最后一个元素。不包含任何元素的列表成为空列表。 1)新增 a)lpush 语法:lpush key value[value] 解释:把一个或多个元素插入表头。如果是多个value时,按照从左到右的次序插。返回插入元素的个数 [root@xsf001 ~]# redis-cli redis 127.0.0.1:6379> lpush lst.user zhangsan #插入一个元素 (integer) 1 redis 127.0.0.1:6379> lpush lst.user zhangsan lisi #插入多个元素,list中允许插入重复的元素 (integer) 3 b)lpushx 语法:lpushx key value 解释:插入一个表头元素,当且仅当列表key存在时,才能插入。返回列表中元素的个数 redis 127.0.0.1:6379> lpushx lst.user wangwu #列表存在 (integer) 4 redis 127.0.0.1:6379> lpushx lst.tech wangwu #列表不存在

「java面试干货」看完助你拿阿里、腾讯、美团、字节跳动offer

混江龙づ霸主 提交于 2020-08-20 08:25:22
Java集合22题 这个算是java中的基础题吧,但是不要小看这些题,有一些可能都回答不上来。我发现最近关于底层问题问的越来越多了,这也算一个基本线吧,如果回答不上来就凉凉了。 ArrayList 和 Vector 的区别。 说说 ArrayList,Vector, LinkedList 的存储性能和特性。 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么? hashmap 的数据结构。 HashMap 的工作原理是什么? Hashmap 什么时候进行扩容呢? List、Map、Set 三个接口,存取元素时,各有什么特点? Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们有何区别? 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对? heap 和 stack 有什么区别。 Java 集合类框架的基本接口有哪些? HashSet 和 TreeSet 有什么区别? HashSet 的底层实现是什么? LinkedHashMap 的实现原理? 为什么集合类没有实现 Cloneable 和 Serializable 接口? 什么是迭代器 (Iterator)? Iterator 和 ListIterator 的区别是什么? 数组

集群部署的落地实现之spring shiro redis 架构 第四篇 shiro session ShiroSessionManager 优化 频繁访问redis

点点圈 提交于 2020-08-20 08:25:06
本篇文章主要解决的问题是shiro session使用redis缓存存储后,由于shiro session的设计特点,导致浏览器端请求会非常频繁访问redis,这样就造成资源的浪费,以及系统性能的下降。主要体现在来 自浏览器的一个请求需要访问这个dao的update方法二十多次。这个是shiro框架本身session设计的原因造成的,每次请求过来都需要更新session内部的时间戳。这个需要对浏览器的请求做针对性的优化,也就是把session存放在request请求里面,这样访问的时候先访问request,极大减少直接访问redis次数。 import java.io.Serializable; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.session.Session; import org.apache.shiro.session.UnknownSessionException; import org.apache.shiro.session.mgt.SessionKey; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;

.NET中的缓存实现

混江龙づ霸主 提交于 2020-08-20 08:15:55
软件开发中最常用的模式之一是 缓存, 这是一个简单但非常有效的概念, 想法是重用操作结果, 执行繁重的操作时,我们会将结果保存在 缓存容器中, 下次我们需要该结果时,我们将从缓存容器中取出它,而不是再次执行繁重的操作。 例如,要获得某人的头像,您可能需要前往数据库。 我们不会每次都执行那次查询,而是将结果保存在缓存中,每次需要时都将其从内存中删除。 缓存非常适合不经常更改的数据, 甚至永远不会改变。 不断变化的数据不适合缓存,如当前机器的时间不应缓存,否则您将得到错误的结果。 进程内缓存,持久化缓存和分布式缓存 进程内缓存 用于在单个进程中实现缓存时, 当进程终止时,缓存会随之消失。 如果您在多个服务器上运行相同的进程,则每个服务器都有一个单独的缓存。 持久化缓存 是指在进程内存之外备份缓存, 它可能位于文件中,也可能位于数据库中。 这实现比较困难,但如果重新启动进程,缓存不会丢失。 分布式缓存 是指您为多台计算机提供共享缓存, 通常它将是几个服务器, 使用分布式缓存,它存储在外部服务中。 这意味着如果一台服务器保存了缓存项,其他服务器也可以使用它。 像 Redis 这样的 服务 非常适合这种情况。 单线程的缓存 public class NaiveCache<T> { private static Dictionary< object , T> _cache = new

Redis系列-存储篇list主要操作命令

随声附和 提交于 2020-08-20 08:01:02
Redis系列-存储篇list主要操作命令小结 在总结list之前,先要弄明白几个跟list相关的概念: 列表:一个从左到右的队列,个人理解更类似于一个栈,常规模式下,先进列表的元素,后出。 表头元素:列表最左端第一个元素。 表尾元素:列表最右端的最后一个元素。不包含任何元素的列表成为空列表。 1)新增 a)lpush 语法:lpush key value[value] 解释:把一个或多个元素插入表头。如果是多个value时,按照从左到右的次序插。返回插入元素的个数 [root@xsf001 ~]# redis-cli redis 127.0.0.1:6379> lpush lst.user zhangsan #插入一个元素 (integer) 1 redis 127.0.0.1:6379> lpush lst.user zhangsan lisi #插入多个元素,list中允许插入重复的元素 (integer) 3 b)lpushx 语法:lpushx key value 解释:插入一个表头元素,当且仅当列表key存在时,才能插入。返回列表中元素的个数 redis 127.0.0.1:6379> lpushx lst.user wangwu #列表存在 (integer) 4 redis 127.0.0.1:6379> lpushx lst.tech wangwu #列表不存在