一 redis介绍

1 redis定义

概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

2 redis的优点与缺点

优点:

1.纯内存操作

2.单线程操作,避免了CPU频繁的上下文切换

3.采用了非阻塞I/O多路复用机制

4.原子性、支持事务

5.丰富的数据类型

缺点:

1.缓存、数据库的双写一致性问题

2.缓存雪崩问题

3.缓存穿透问题

4.缓存的并发竞争问题(假死)

3 redis常见的应用场景

1、为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等
2、任务队列,如秒杀、抢购、购票排队等
3、即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等
4、时效性信息控制,如验证码控制、投票控制等
5、分布式数据共享,如分布式集群架构中的 session 分离
6、消息队列
7、分布式锁

二 常见的命令

(一)Redis数据库命令格式

1、String(字符串)

(1)设置键值对 set myKey abc

(2)取出键值对 get myKey

2、Hash(哈希)

(1)设置值:HMSET user:1 username redis.net.cn password redis.net.cn points 200

(2)获取值:HGETALL user:1

3、List(列表)

(1)设置值:lpush redis.net.cn redis

(2)获取值:lrange redis.net.cn 0 10

4、Set(集合)

(1)设置值 :sadd redis.net.cn redis

(2)获取值:smembers redis.net.cn

5、zset(sorted set:有序集合)

(1)设置值 :zadd redis.net.cn 0 redis

(2)获取值:ZRANGEBYSCORE redis.net.cn 0 1000

(二)Redis CONFIG 命令格式

1、redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

(三)其他redis命令

1、PING:该命令用于检测 redis 服务是否启动。

2、$ redis-cli -h host -p port -a password :redis客户端连接redis服务命令

三 常见的错误

(一)已解决redis连接时保错(error) ERR operation not permitted

在windows的cmd命令窗口使用redis-cli.exe连接redis时保错:(error) ERR operation not permitted

已解决redis连接时保错(error) ERR operation not permitted_码上敲享录

四 附1:简述JAVA同步、异步、阻塞和非阻塞之间的区别

参考文献:

(1)脚本之家 简述JAVA同步、异步、阻塞和非阻塞之间的区别 https://www.jb51.net/article/192321.htm

五 附2:redis击穿、穿透、雪崩

参考文献:

(1)csdn Redis缓存击穿、雪崩、穿透!(超详细)Redis缓存击穿、雪崩、穿透!(超详细)_lin777lin的博客-CSDN博客_redis缓存击穿

(2)博客园 REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案 REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案 - 大码哥 - 博客园

六 附3:redis.config案例(k_j_ythglpt)

bind 127.0.0.1 ——  绑定的主机地址
requirepass yth@Callsc_cache ——  设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
daemonize no ——  Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
pidfile /var/run/redis.pid —— 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
port 6379 —— 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
timeout 0 —— 当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
tcp-keepalive 0
loglevel notice —— 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
logfile stdout —— 日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
databases 16 —— 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id

################ SNAPSHOTTING (快照; 快照方式; 快照技术;) ##################
save 900 1 —— 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
save 300 10 —— 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
save 60 10000 —— 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
stop-writes-on-bgsave-error yes
rdbcompression yes —— 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbchecksum yes
dbfilename dump.rdb —— 指定本地数据库文件名,默认值为dump.rdb
dir ./ —— 指定本地数据库存放目录

################REPLICATION(复制; 拷贝;) #################################
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100

################ SECURITY(保护措施; 安全工作) ###################
################LIMITS(限度; 限制; 极限; 限量; 限额;) #####################

################APPEND ONLY MODE ###############################
appendonly no —— 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
appendfsync everysec —— 指定更新日志条件,共有3个可选值:     no:表示等操作系统进行数据缓存同步到磁盘(快)     always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)     everysec:表示每秒同步一次(折衷,默认值)
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

################LUA SCRIPTING(LUA为电影(或戏剧等)写剧本) ##############
lua-time-limit 5000

################SLOW LOG (日志显示) ###################################
slowlog-log-slower-than 10000
slowlog-max-len 128

################ ADVANCED CONFIG( 高级的、后期的配置) ##################
hash-max-ziplist-entries 512 —— 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法
hash-max-ziplist-value 64 —— 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes —— 指定是否激活重置哈希,默认为开启(后面在介绍Redis的哈希算法时具体介绍)
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10

################ INCLUDES (包括; 包含;)###################################

七 附3:浏览器中“JavaScript解析器”工作原理

参考:

(1)博客园 浏览器中“JavaScript解析器”工作原理 浏览器中“JavaScript解析器”工作原理 - 陌年古城 - 博客园

redis中文网:https://www.redis.net.cn/tutorial/3503.html相关推荐

  1. redis缓存技术学习 www.iigrowing.cn/redis-huan-cun-ji-shu-xue-xi.html

    来源:互联网 1 什么是redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合 ...

  2. 《Redis篇》01.Redis看这一篇就够了

    陈老老老板 说明:在整体的复习一遍知识,边复习边总结,基础真的重要,需要注意的地方都标红了,还有资源的分享. 一起加油.本篇有对Redis知识的阐述,和使用IDEA操作Redis 视频链接:黑马Red ...

  3. 一文深入了解 Redis 内存模型,Redis 的快是有原因的!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:编程迷思 cnblogs.com/kismetv/p/865 ...

  4. php redis support,PHP 使用 Redis

    安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP. 接下来让我们安装 PHP redis 驱动:下载 ...

  5. Redis的搭建和Redis的集群搭建

    1.Redis的官网:https://redis.io/      Redis的测试网站:http://try.redis.io/ 2.参考博客:https://www.cnblogs.com/maf ...

  6. php使用redis命令,PHP 使用 Redis

    安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP. 接下来让我们安装 PHP redis 驱动:下载 ...

  7. redis 内存不足 排查_一文深入了解 Redis 内存模型,Redis 的快是有原因的!

    前言 一.Redis内存统计 二.Redis内存划分 1.数据 2.进程本身运行需要的内存 3.缓冲内存 4.内存碎片 三.Redis数据存储的细节 1.概述 2.jemalloc 3.redisOb ...

  8. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  9. redis序列化_SpringBoot整合redis

    redis是最常用的缓存数据库,常用于存储用户登录token.临时数据.定时相关数据等. redis是单线程的,所以redis的操作是原子性的,这样可以保证不会出现并发问题. redis基于内存,速度 ...

最新文章

  1. iphone修改html样式,html – iphone在输入上覆盖我的所有样式[type =“submit”]
  2. cd协议属于计算机网络的应用层,计算机网络 题库 必考 期末 期终 考试 复习 考研 必备...
  3. 参加浙江中医药大学第十二届程序设计竞赛(ACM赛制)的小记
  4. vue动态生成表单元素
  5. SQl常用语句总结(持续更新……)
  6. matlab读txt文件不完整,求助Matlab批量读取TXT文件出错
  7. 一文带你读懂计算机进制
  8. SqlSessionTemplate是如何保证MyBatis中SqlSession的线程安全的?
  9. [UML]UML系列——时序图(顺序图)sequence diagram
  10. 共合网,风投的概念和阳谋
  11. 盐城计算机考试时间安排,2019盐城中考具体时间安排 什么时候考试
  12. clickhouse时间日期函数
  13. rk1808交叉编译opencv_我用AI视觉模组DIY了一个驾驶疲劳监测仪
  14. 游戏外挂篇:如何Dump内存获得游戏的辅助
  15. VTK笔记-组建vtkPolyData-四面体/五面体/六面体
  16. 仙剑5手游服务器维护,仙剑奇侠传手游维护及内容更新公告
  17. pwm超详细解读,大佬细说pwm的控制方式
  18. 海贼王英文版 ONE PIECE百度网盘
  19. 51单片机常用功能及相关内容
  20. office产品处于非活动状态——word无法修改

热门文章

  1. ASP如何计算中英文混合字符串长度和截取字符串
  2. 视觉错觉模型_【案例 Blah】 剪影视错觉装置建模
  3. 计算机勾兑双绝是谁发明,白酒行业最早何时实行白酒勾兑的?白酒勾兑的偏见又源于何时?...
  4. python 读取多级表头_python之Dataframe:多级表头和索引灵活的处理(一)
  5. 【LeetCode】453. 最小操作次数使数组元素相等
  6. 令人唏嘘!谷歌这10年来究竟砍掉了多少项目和产品?
  7. 使用光泵磁力仪(OPMs)非接触测量视网膜活动
  8. H5开发在微信浏览器上,出现“白屏”问题
  9. Caused by: java.lang.NoSuchMethodException: xx.<init> [class android.content.Context, interface
  10. 我的世界神秘时代安卓java版_我的世界神秘时代MOD