赞
踩
Redis 是键值对(Key-Value)存储数据库,数据存储在内存中,读写速度非常快,每秒可以处理超过10万次读写操作,广泛应用于缓存,也经常用来做分布式锁
redis中文官方网站:http://www.redis.cn/download.html
Redis 是一个客户端服务端的程序
因为需要redis的配置文件,这里最好还是去redis的官方去下载一个redis使用里面的配置文件即可
注意:不能在配置项的后面加注释
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#允许远程访问
#bind 127.0.0.1
bind 0.0.0.0
#关闭保护模式
protected-mode no
port 6379
tcp-backlog 511
requirepass #redis密码,设置为空,取消密码
timeout 0
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
daemonize no #用守护线程的方式启动
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes #redis持久化 默认是no
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
总之,Redis 是一种高性能、灵活和多功能的键-值存储系统,适用于多种应用场景,特别是需要处理高并发、低延迟和大量数据的应用程序。
# 要确保docker环境已经安装成功
docker --version
docker search redis
#拉取最新版本
docker pull redis
#查看端口
netstat -anp |grep 6379
redis-server #这个是关键配置,让redis按照这个redis.conf的配置启动
docker run --name myredis -p 6379:6379 \
-v /app/redis.conf:/usr/local/etc/redis/redis.conf \
-v /app/redis/data:/data \
--restart=always \
-d redis:latest redis-server /usr/local/etc/redis/redis.conf
docker start 容器名或容器id
# 查看运行中的容器
docker ps
# 进入redis容器并启动一个redis交互式会话
docker exec -it redis容器名 /bin/bash
# 在redis交互式会话中连接 redis 服务
redis-cli
#或者直接进入
docker exec -it redis容器名 redis-cli
# 清理容器(停止 docker-redis 容器并删除):
docker stop redis容器名
docker rm redis容器名
version: '3' #设置docker compose 版本
services:
#设置services
redis:
image: redis #镜像名称
container_name: redis #容器名称
restart: always #重启docker引擎后该容器也重启
privileged: true # 获取宿主机root权限
ports:
- 6379:6379 #本地端口号与容器内部端口号
volumes:
#指定挂载目录
- ./data:/data
- ./redis.conf:/etc/redis/redis.conf
command: [ "redis-server", "/etc/redis/redis.conf" ] # 指定配置文件启动redis-server进程
创建redis.conf
# Redis默认端口
port 6379
bind 0.0.0.0
# 关闭保护模式,允许远程连接
protected-mode no
# 密码
requirepass 123456
docker-compose up -d
下载地址:https://github.com/tporadowski/redis/releases
#启动redis服务
redis-server.exe
这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。
#启动redis客户端,连接本机6379端口(127.0.0.1)raw参数避免中文乱码
redis-cli --raw
127.0.0.1:6379>
shutdown
exit
#在远程服务上执行命令
redis-cli -h host -p port -a password
redis-server.exe redis.windows.conf
redis-cli.exe -h 127.0.0.1 -p 6379
发生了错误。MaxRetriesPerRequestError: Reached the max retries per request limit (which is 20). Refer to “maxRetriesPerRequest” option for details.
redis-cli #在redis交互式会话中连接 redis 服务
config get requirepass #查看现有的redis密码
config set requirepass pass_123456 #设置redis密码
AnotherRedisDesktopManager 一款比较稳定简洁的 redis UI 工具。
Redis Client 是Redis客户端的GUI工具,使用Java swt和jedis编写,可以方便开发者浏览Redis数据库。该软件支持简体中文,非常适合国内用户使用,不需要汉化就可以直接使用
https://redislabs.com/redis-enterprise/redis-insight/
QuickRedis 是一款 永久免费 的 Redis 可视化管理工具。
先创建目录,再创建连接
https://github.com/tiny-craft/tiny-rdm
⭐️ 支持 macOS、Windows 和 Linux
⭐️ 基于 Webview,无内嵌浏览器
⭐️ 更精美的界面和直观的结构布局
⭐️ 便捷的数据查看和编辑修改
⭐️ 多国语言支持
String
:字符串类型List
:列表类型Set
:无序集合类型ZSet
:有序集合类型Hash
:哈希表类型String:
int(8字节长整型)/embstr(小于等于39字节字符串)/raw(大于39个字节字符串)
List
Set
zset(有序集合)
Hash
hset key field value
、hget key field
ziplist(压缩列表)
、hashtable(哈希表)
阿里二面:熟悉Redis?讲讲你理解的Redis的持久化机制(RDB、AOF) - 知乎
因为Redis是内存数据库,它将自己的数据存储在内存里面,一旦Redis服务器进程退出或者运行Redis服务器的计算机停机,Redis服务器中的数据就会丢失。
为了避免数据丢失,所以Redis提供了持久化机制,将存储在内存中的数据保存到磁盘中,用于在Redis服务器进程退出或者运行Redis服务器的计算机停机导致数据丢失时,快速的恢复之前Redis存储在内存中的数据。
Redis提供了2种持久化方式,分别为:
RDB持久化是将某个时间点上Redis中的数据保存到一个RDB文件中,该文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时Redis中的数据
RDB持久化也叫做快照持久化。
我们可以手动执行该命令,但还是推荐设置下Redis服务器配置文件的save选项,让服务器每隔一段时间自动执行一次BGSAVE命令。
save 900 1
save 300 10
save 60 10000
默认的配置条件表示,只要满足以下3个条件中的任意1个,BGSAVE命令就会被执行:
dbfilename dump.rdb #RDB文件名称
dir ./ #RDB文件保存路径
载入RDB文件的目的是为了在Redis服务器进程重新启动之后还原之前存储在Redis中的数据。
Redis载入RDB文件并没有专门的命令,而是在Redis服务器启动时自动执行的。
而且,Redis服务器启动时是否会载入RDB文件还取决于服务器是否启用了AOF持久化功能,具体判断逻辑为:
创建和载入RDB文件,可能存在的服务器状态有以下3种:
AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库数据的
客户端 发送写命令到 redis服务端
redis服务端 保存被执行的写命令到 aof文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。