redis中文网:https://www.redis.net.cn/tutorial/3503.html

  • Post author:
  • Post category:其他


一 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解析器”工作原理 – 陌年古城 – 博客园



版权声明:本文为aiwokache原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。