redis
redis相关
超级划水857
一直在路上
展开
-
14-redis的发布订阅
Redis发布订阅是一种消息通信模式,发送者(pub)发送消息,订阅者(sub)接收消息订阅发布消息图redis发布订阅的原理redis是使用C实现的,通过分析Redis源码中的pubsub.c文件,了解发布和订阅的底层实现籍此加深对Redis的理解,Redis通过PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令来实现发布订阅的功能。通过SUBSCRIBE命令订阅某频道后,redis-server里维护了一个字典,字典的键就是一个个的channel,而字典的值则是一个个链表,链表中保原创 2020-10-20 00:08:35 · 117 阅读 · 0 评论 -
13-redis持久化RDB和AOF
RDB简介RDB是Redis Database的缩写,是redis持久化的一种方式,具体指的是在指定的时间间隔内,将数据集快照写入磁盘,也就是行话将的Snapshot快照,它恢复时是将快照直接读到内存中。redis会单独的fork(派生)出一个子进程来进行持久化,会将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件来替换上一次的持久化文件。整个过程中主程是不会进行任何IO操作的(持久化全部交给子进程),这样就保证了极高的性能,如果需要进行大规模的数据恢复,且对于数据恢复的完整性不是很原创 2020-10-19 23:09:39 · 110 阅读 · 0 评论 -
12-redis的配置文件详解
单位需要注意的是redis中1k 和 1kb是不一样的 1k就是1000字节 而1kb指的是1024字节 以此类推 redis配置文件单位对大小写是不敏感的# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes包含(include)incl原创 2020-10-18 18:38:30 · 80 阅读 · 0 评论 -
11-自定义redisTemplate
在工程中新建一个配置类,手动装配redisTemplate@Configurationpublic class RedisConfig { /** * 不用springboot自己的redisTemplate 改用自己自定义的redisTemplate * @param redisConnectionFactory * @return * @throws UnknownHostException */ @Bean public原创 2020-10-18 17:36:19 · 255 阅读 · 0 评论 -
10-springboot整合redis
在springboot 2.x之后spring 连接redis 底层已经由jedis变更为lettuce。jedis与lettuce的却别jedis底层采用的是直连redis 来一个请求就会创建一个连接 这样是不行的,当并发量大的时候会造成redis连接数过多,所以实际生产环境中国一般采用jedispool(jedis提供的redis连接池) 但是这样当并发量过高时,连接池会将请求放入队里中等待,效率相对于lettuce来说太低了。(阻塞式IO BIO)lettuce底层采用的netty(非阻塞式I原创 2020-10-18 16:17:42 · 159 阅读 · 2 评论 -
09-jedis操作redis
jedis 是redis官方推荐的java连接开发工具。pom依赖<dependencies> <!-- jedis客户端 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version>原创 2020-10-18 15:06:56 · 48 阅读 · 0 评论 -
08-redis实现乐观锁
一简介redis本身自带有一个watch命令,利用它也可以实现乐观锁,和redis的setnx 不一样,watch命令的作用就是监听某个key,当redis的某个事物对该key进行操作时,如果发现该key状态发生了变更,则整个事物会失败。set money 100 #设置初始化的值为100watch money #监听这个keymulti #开启事务incr money #新增余额#此时启动另外一个客户端 执行下面的命令 将money的值改变decr money #此时money已经变成了原创 2020-10-18 10:54:48 · 137 阅读 · 0 评论 -
07-redis事务
一 简介通常我们说的事务都具有四个特性 ACID(原子性、一致性、隔离性、持久性)但是redis的事务是不能保证原子性的(要么同时成功 要么同时失败)redis事务的本质: redis中的事务实际上相当于将一组命令先放入一个队列中,当执行事务的时候才开始执行这一组命令,在执行事务时候会根据入队的先后顺序执行。由于redis是单线程的,所以redis中的事务没有隔离级别(脏读、幻读、不可重复读)的概念 也就是说redis中不会存在脏读、幻读、不可重复读这些,这些情况都是在事务并发执行的时候出现的问题。原创 2020-10-13 23:17:12 · 68 阅读 · 0 评论 -
06-redis的三种特殊类型
一 geospatial(地理位置)geospatial类型可以用在以下场景中 1、朋友的地位 2、附近的人 3、打车距离计算城市经纬度查询 这个网站可以查询城市的经纬度,用于测试geospatial数据类型# geoadd key 精度 维度 名称 将给定的空间元素(纬度、经度、名字)添加到指定的键里面 需要注意的是地球两极无法直接添加geoadd china:city 116.405285 39.904989 beijing #将北京市的经纬度添加到china:city集合中#geopos原创 2020-10-08 21:52:08 · 302 阅读 · 1 评论 -
05-redis的基本数据类型
一 简介redis的数据类型主要包括5种基本数据类型和三种特殊数据类型二 redis key的常用命令1、判断一个key是否存在# 判断key=name的这个key是否存在 如果存在返回1 否则返回0exists name2、将key从当前db迁移到另外一个db中去#表示将key为name的这个可以 迁移到db=1的db中去move name 13、为key设置过期时间#设置key为name的key的过期时间为30秒 单位是秒expire name 304、查看某个key剩余原创 2020-09-21 07:52:46 · 83 阅读 · 0 评论 -
04-redis基本知识说明
redis默认有16个数据库,默认使用的是第0个数据库,redis是一个单线程的数据库。官方表示redis是基于内存操作的,其性能瓶颈不在于CPU而在于网络带宽和内存大小,所以能用单线程实现就用单线程实现。1、切换数据库#切换到下标为3的数据库(第四个)select 32、查看当前数据库的大小#通过dbsize命令查看当前数据库的大小dbsize3、查看所有的key#只能查看当前db的所有的key 生产环境慎用keys * 4、清空当前db的数据flushdb5、清空整个re原创 2020-09-20 16:09:16 · 81 阅读 · 0 评论 -
03-redisbenchmark性能测试工具
一 简介redis-benchmark 是redis自带的一个性能测试工具,用来测试redis的性能的二 benchmark 命令参数序号选项描述默认值1-h指定redis服务器主机名127.0.0.12-p指定redis服务器的端口63793-s指定服务器的socket4-c指定并发连接数505-n指定每个连接的请求数100006-d以字节的形式指定GET/SET的数据大小7-k值为1 表示keep原创 2020-09-20 00:53:31 · 77 阅读 · 0 评论 -
02-redis简介与安装
一 redis 简介redis又叫 REmote DIctionary Serve(远程字典服务) 它是一个使用C语言编写的支持,支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API 不仅仅只是java二 redis能干嘛1、支持内存存储和持久化(rdb、aof)2、效率高可以用于高速缓存3、支持发布订阅4、用来做地图信息分析5、计时器、计数器三 windows下安装redisredis并不建议在windows下使用,但是有些比较古老的企事业单位,还有用原创 2020-09-20 00:13:01 · 84 阅读 · 0 评论 -
01-NoSql简介
一 简介NoSql(Not only Sql) 泛指非关系型数据库,随着web2.0的诞生,传统的关系型数据库很难对付web2.0时代,尤其是超大规模或者是高并发的社区,传统的关系型数据库已经不能满足需求了。二 Nosql 特点方便扩展大数据量、高性能 redis 一秒可以写8万次读11万次数据类型多样三 Nosql 四大分类键值对存储 redis列存储 hbase文档存储 mongodb 文档型数据库底层是二进制的json(也叫bson)图形数据库...原创 2020-09-19 13:14:56 · 77 阅读 · 0 评论