REDIS - 技术教程文章

Redis (二)_ jedis的使用【代码】

Jedis 是 Redis 官方首选的 Java 客户端开发包虚拟机设置查看虚拟机的ipifconfig将虚拟机的6379端口打开#运行下面的命令 如果是新建的一个新的 文件,你需要先安装 iptables,再打开 vim /etc/sysconfig/iptables## 安装命令 yum install -y iptables-services 重启服务service iptables restart # 执行上面的命令,如果提示 Redirecting to /bin/systemctl restart iptables.service# 则执行 /bin/systemctl restart iptables.ser...

Apache Ignite和Oracle Coherence,Gemfire以及Redis的对比

Apache Ignite 内存数组组织框架是一个高性能、集成和分布式的内存计算和事务平台,用于大规模的数据集处理。Ignite为应用和不同的数据源之间提供一个高性能、分布式内存中数据组织管理的框架。该 项目今年一月才进入Apache的孵化器进行孵化,很快就于8月25日毕业并且成为Apache的顶级项目,9月28日即发布了1.4.0版,应该说发 展、迭代速度非常之快。该技术发展历史还比较短,相关资料较少,但确是一个很有潜力的技术,解决了大规模...

Redis 2.8.18 安装报错

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory zmalloc.h:55:2: error: #error "Newer version of jemalloc required" make[1]: *** [adlist.o] Error 1 make[1]: Leaving directory `/data0/src/redis-2.6.2/src‘ make: *** [all] Error 2 解决办法是: make MALLOC=libc 网上已经有了 解决办法,为什么要加这个呢 ,在README 有这个一段话。Allocator ---------Selecting a non-default memory allo...

单机版 RedisUtils({基本操作封装工具类})【三】【代码】

<!--集成的RedisJAR--> <!--引入jedis需的jar包--> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency> <!--Spring整合jedis的依赖--> <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.7.1.RELEASE</version> </dependency>package com.dsj.gdbd.utils.jedis;import com.dsj.gdbd.utils.serializ...

Redis设置为开机自启动【代码】

1. 新建一个文件vim /etc/init.d/redis 2. 将下面内容粘贴到文件中#!/bin/sh #chkconfig: 2345 90 10 #description: Redis is a persistent key-value database PATH=/usr/local/bin:/sbin:/usr/bin:/binREDISPORT=6379 EXEC=/usr/local/bin/redis-server REDIS_CLI=/usr/local/bin/redis-cli PIDFILE=/var/run/redis_6379.pid CONF="/myredis/redis.conf"case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exis...

PHP安装Redis扩展教程【图】

安装redis下载软件包phpredis https://github.com/nicolasff/phpredisuzip master #解压得到 phpredis-mastercd phpredis-master #进入安装目录/www/wdlinux/php/bin/phpize #用phpize生成configure配置文件./configure --with-php-config=/www/wdlinux/php/bin/php-config #配置make #编译make install #安装安装完出现这个信息配置php支持vim /www/wdlinux/php/etc/php.ini添加 extension="redis.so"重启下apache,在...

基于redis实现的分布式锁【代码】

RedisLockHelper.java /*** Created by BingZhong on 2017/7/29.** 基于Redis实现的分布式锁*/ public final class RedisLockHelper {private static Logger logger = LoggerFactory.getLogger(RedisLockHelper.class);/*** redis操作帮助类,可以是其他封装了redis操作的类*/private RedisHelper redisHelper;public static final long DEFAULT_TIMEOUT = 30 * 1000;public static final long DEFAULT_SLEEP_TIME = 100;private Re...

nginx+tomcat集群+redis(memcache)session共享!【图】

nginx+tomcat+redissession共享常用保持session的方式:1、一些代理(比如nginxIP_hash)1、使用数据库来存储Session2、使用Cookie来存储Session 3、使用Redis来存储Sesssion(memcache也可以)…… 环境:192.168.1.220 nginx centos6.6 端口:80版本:1.9.2192.168.1.224 tomcatA centos6.6 端口:8080192.168.1.225 tomcatB centos6.6 端口:8090版本:Jdk:1.7.0_75 Tomcat:7.0.54192....

Redis学习笔记四:主从复制和哨兵【代码】【图】

这里是Redis学习笔记的第四篇,主要讲Redis主从复制和哨兵。 为什么需要主从复制单机redise风险与问题问题1 机器故障问题2 容量瓶颈为了避免单点redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,链接在一起,并保证数据是否同步的,即使有其中一台服务器宕机,其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份。但是多台服务器怎么保证这么多服务器的数据同步呢?让...

Redis常用命令速查 <第二篇>

一、Key  Key命令速查:命令说明DEL删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量DUMP序列化给定 key,返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键EXISTS检查给定 key 是否存在EXPIRE为给定key设置有效时间,接受时间点EXPIREAT为给定key设置有效时间,接受时间戳timestampKEYS查找所有符合给定模式 pattern 的 key;KEYS * 匹配数据库中所有 key;KEYS h?llo 匹配 hel...

php 使用redis锁限制并发访问类【代码】

1.并发访问限制问题对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制的情况下,用户则可以使用同一个换领码同时兑换到多张优惠券。伪代码如下:if A(可以换领)B(执行换领)C(更新为已换领)D(结束)如果用户并发提交换领码,都能通过可以换领(A)的判断,因为必须有一个执行换领(B)后,才会更新为...

SpringBoot项目集成Redis【代码】【图】

一、在pom文件中添加依赖1 <!-- 集成redis --> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-data-redis</artifactId> 5 </dependency>二、在application.yml文件中配置redis 1spring:2 redis:3 host: 127.0.0.1 #redis服务器IP地址4 port: 6379 #端口号5 jedis:6 pool:7 max-active: 8 #最大连接数8 max-idle: 8 #最大空闲数9 ...

redis五种数据类型的使用场景【代码】

string 1、String 常用命令: 除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String, 也可以是数字:比如想知道什么时候封锁一个IP地址(访问超过几次)。IN...

Redis主从【代码】

单机瓶颈1虽然Redis可以实现单机的数据持久化,但是无论是RDB还是AOF,都解决不了单点宕机问题。 2即一台单机Redis服务器本身出现系统故障,硬件故障等问题后,就会直接造成数据的丢失, 3 此外,单机的性能也是有极限的,因此需要使用另外的技术来解决单点故障和性能扩展的问题。主从复制原理1salve 向master发送sync命令 2master启动后台存盘进程,并手机所有修改数据命令 3master完成存盘后,传送整个数据文件到slave 4slave接受...

redis.conf配置【代码】

# Redis configuration file example# Redis示例配置文件# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:# 注意单位问题:当需要设置内存大小的时候,可以使用类似1k、5GB、4M这样的常见格式:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes## units ar...

使用redis的缓存功能 (windows 版redis)【代码】

需要用到的jar:  commons-pool2-2.3.jar   jedis-2.7.0.jarJedisPoolConfig的配置文件redis.propertiesredis.maxIdle=30 redis.minIdle=10 redis.maxTotal=100 redis.url=localhost redis.port=6379redis数据库连接的连接池工具类JedisPoolUtilsimport java.io.IOException; import java.io.InputStream; import java.util.Properties;import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import...

PHP实现Redis单据锁,防止并发重复写入【代码】

一、写在前面在整个供应链系统中,会有很多种单据(采购单、入库单、到货单、运单等等),在涉及写单据数据的接口时(增删改操作),即使前端做了相关限制,还是有可能因为网络或异常操作产生并发重复调用的情况,导致对相同单据做相同的处理;为了防止这种情况对系统造成异常影响,我们通过Redis实现了一个简单的单据锁,每个请求需先获取锁才能执行业务逻辑,执行结束后才会释放锁;保证了同一单据的并发重复操作请求只有一个请求...

Redis数据结构之字符串、哈希结构常用命令【图】

1、redis基本数据结构之字符串字符串是redis中最基本的数据结构,是key-value的形式存储数据。 字符串常用基本命令如下表所示:命令说明备注set key value设置键值对最常用的写入命令。get key通过键获取value值最常用的读取命令。del key通过key删除键值对删除命令,返回删除数,需要注意的是:它是一个通用的命令,也就是说在其他数据结构中也可以使用。strlen key求key指向的字符串的长度返回长度getset key value修改原来key对...

node.js中结合redis实现session修改完善(2)【图】

代码的设计比较乱,整理了jade模板之后,决定链接登录注册功能,但发现很多的实现都太凑合了,先修改了httpParam的get, post, cookie 方法。现在决定修改Session,因为session太无厘头了。 1. 结合的比较混乱 2. session和redis操作在一起,没有独立出去 3. session中存放的数据不明朗 4. session中设置了过期,其实没有必要,因为在redis中已经设置了过期时间 5. 页面切换的时候,没有对session过期时间进行更新 ...

windows下安装redis

先去官网下载https://redis.io,解压文件到指定文件夹启动,cmd进入解压目录:redis-server.exe redis.windows.conf连接上,cmd进入解压目录:redis-cli.exe -h 127.0.0.1 -p 6379修改密码为123456:config set requirepass 123456原文:https://www.cnblogs.com/JAYIT/p/10393754.html

Redis--为什么这么快?

Redis作为一个基于key-value的NoSQL数据库,最显著的特点存取速度非常快,官方说可以达到10W OPS,但是Redis为何这么快?1、开发语言Redis使用C语言进行编写的,而Unix系统也是C语言实现,所以C语言是非常贴近操作系统的语言2、基于内存读写基于内存读写是Redis速度快的主要原因,不进行数据同步的情况下,不从磁盘读取数据,没有IO。内存响应时间大约100ns3、单线程  1).单线程避免了线程上下文切换以及同步加锁、解锁带来的消耗...

window下redis nosql初试【图】

1:redis官方下载地址http://redis.io/download 下载下来,有32位的,有64位的,自己选择。2:将redis文件夹放到D盘:D:\redis3:使用cd命令切换文件夹到d:\redis 执行 redis-server.exe。redis服务就可以启动。4:启另外一个cmd窗体,原来的不要关闭,不然就无法訪问服务端了 切换到redis文件夹下执行 redis-cli.exe -h 127.0.0.1 -p63795:使用java程序调用,须要引入jedis-2.0.0.jarpublic class Test {public static vo...

Redis事务 MULTI、EXEC、Watch【代码】

目录Redis事务事务实例MULTI 命令EXEC 命令事务异常1. 进入队列之前发生错误Watch 命令UnWatch 命令Redis事务redis是NOSQL数据库,所以也存务,只是在事此事务和关系型数据库的事务是有区别的。事务实例MULTI 命令在执行 MULTI 命令之后,此时将进入阻塞状态。当我们继续发送命令时,命令不会立即执行,而是会排队等待。直到输入 EXEC 命令执行,队列中的命令才会一一执行127.0.0.1:6379> MULTI OK 127.0.0.1:6379> set k1 111 QUE...

Redis中的数据结构【代码】【图】

1. 底层数据结构, 与Redis Value Type之间的关系对于Redis的使用者来说, Redis作为Key-Value型的内存数据库, 其Value有多种类型.StringHashListSetZSet这些Value的类型, 只是"Redis的用户认为的, Value存储数据的方式". 而在具体实现上, 各个Type的Value到底如何存储, 这对于Redis的使用者来说是不公开的.举个粟子: 使用下面的命令创建一个Key-Value$ SET "Hello" "World"对于Redis的使用者来说, Hello这个Key, 对应的Value是Strin...

spring boot 1.5.4 整合redis、拦截器、过滤器、监听器、静态资源配置(十六)【图】

上一篇:spring boot 1.5.4 整合webService(十五) 1 Spring Boot整合redis和缓存Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。redis官网:https://redis.io/redis中文社区:http://www.red...

深入浅出Redis(二)高级特性:事务

第一篇中介绍了Redis是一个强大的键-值仓储,支持五种灵活的数据结构。事实上,Redis还支持其它的一些高级:事务、发布与订阅、管道、脚本等,本篇我们来看一下事务。事务前一篇中我们提到,在Redis中每个命令都是原子性的,因为Redis内部的实现是单线程的。当然Redis也支持多个命令之间的事务,不过事务在Redis中相对来说很简单,不像数据库事务那样涉及传播级别、隔离级别等特性。使用multi命令开始一个新的事务,exec命令提交,...

redis单线程问题

1.redis的单线程指的是什么单线程?同一个时间点只处理一个客户端的连接,也就是redis网络模块的单线程。2.redis为什么设计成单线程 具体作者怎么想的,我不知道,我说一下我的理解(1)redis用的是非阻塞IO,非阻塞I/O本身就可以是单线程处理多个请求(2)如果用多线程,就要考虑线程的上下文切换,和锁的请求和释放,这些操作也比较耗时,锁等待更容易把业务线程池占满(3)在我看来,Redis的设计理念就是短平快,在保证完全内存...

Keepalived+Redis高可用部署

1 Redis简介及安装Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。Redis从它的许多竞争继承来的三个主要特点:Redis数据库完全在内存中,使用磁盘仅用于持久性。相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。Redis可以将数据复制到任意数量的从服务器。1.1 REDIS优势异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。支持丰富的数据类型:Re...

一 .linux上安装 python git redis nginx【代码】【图】

一 Linux平台上 python git redis nginx 源码包安装 下载依赖库 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel yum -y install gcc automake autoconf libtool make1. Python安装图解https://www.cnblogs.com/Jimc/p/10218387.htmltar -zxvf Python-3.6.5.tgz ...

ServiceStack.Redis 5.8 版本去掉每小时 6000 次访问限制【图】

ServiceStack.Redis这个官方 Redis 访问组件从4.0版本后开始商业化了,在使用的时候会有很多限制:1、类型限制类型限制是20,这个组件自带序列化功能,使得我们可以直接把对象保存到Redis库里,但是我们保存类型复杂的时候,就会有这个限制来报错。这个在使用中问题不大,不会影响大的使用。我们可以在操作前,先把对象用其他工具比如Newtonsoft序列化成string字符串, 这个问题就解决了。2、每小时访问次数限制这个组件每小时默认访...