Redis基础命令和配置文件

Redis基础命令和配置文件

📕作者:喜欢水星记

🏆系列:NoSQL之Redis

🔋收藏:本文记录我学习过程供大家学习和自己之后复习,如果对您有用,希望能点赞收藏加关注

前言:本文记录了我在安装Redis之后,一些简单的命令使用,和Redis配置文件的一些基础讲解

推荐课程:bilibili狂神说之Redis

Redis-benchmark性能测试工具

Redis-benchmark 是Redis解压后自带的,不需要单独去安装

本次实验测试的Redis-benchmark是在我源码编译安装后生成的 /src目录中

image-20230730135246391

使用说明

使用 Redis-benchmark性能测试工具时,必须提前启动Redis的服务端和客户端,否则会报错,无法连接

[root@zabbix-agent src]# ./redis-server myconf/redis.conf
1440:C 30 Jul 2023 14:00:09.032 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1440:C 30 Jul 2023 14:00:09.032 # Redis version=5.0.8, bits=64, commit=00000000, modified=0, pid=1440, just started
1440:C 30 Jul 2023 14:00:09.032 # Configuration loaded
[root@zabbix-agent src]# ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

连接上了服务端和客户端之后,可以新建一个标签页,之后再启动Redis-benchmark

# 快速测试命令,最好进入 redis-benchmark所在的目录下执行
./redis-benchmark

# 带参数测试 
# -h 指定服务器的主机名
# -p 指定服务器的端口号
# -c 指定并发的连接数
# -n 指定请求数(一次GET命令,算一次请求)

./redis-benchmark -h localhost -p 6379 -c 100 -n 200000

image-20230730141935683

基础命令

# 测试连接
ping
# 设置值
set [key] [value]
# 取值
get [key]

# 查看所有的key
keys *

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set sex man
OK
127.0.0.1:6379> get sex
"man"
127.0.0.1:6379> set name xx
OK
127.0.0.1:6379> get name
"xx"
127.0.0.1:6379> keys *
1) "name"
# 切换Redis的数据库,Redis默认内置了16个数据库,编号为0-15
select [数据库编号]

# 清除当前数据库
flushdb

# 清除所有数据库
flushall

# 设置key的过期时间
expire [key] [时间]

# 查看当前key的剩余时间
ttl [key]

127.0.0.1:6379> SELECT 6
OK
127.0.0.1:6379[6]> keys *
(empty list or set)
127.0.0.1:6379[6]> set name kaisa
OK
127.0.0.1:6379[6]> KEYS *
1) "name"
127.0.0.1:6379[6]> FLUSHDB
OK
127.0.0.1:6379[6]> KEYS *
(empty list or set)
127.0.0.1:6379[6]>
127.0.0.1:6379> expire name 10  # 设置name的过期时间为10s,默认为秒
(integer) 1
127.0.0.1:6379> ttl name
(integer) 2
127.0.0.1:6379> ttl name
(integer) 0
127.0.0.1:6379> ttl name
(integer) -2					# -2 则表示已经过期

# getset 先取值再赋值,如果原来没有值,再输出nil,如果存在值,则输出原来值,再赋新的值
127.0.0.1:6379> getset name kaisa
"xihuanshuixingji"
127.0.0.1:6379> get name
"kaisa"
127.0.0.1:6379> getset LPL EDG
(nil)
127.0.0.1:6379> get LPL
"EDG"

Redis配置文件

Redis的配置文件是存放在安装目录里面的 Redis.conf 文件中

定义大小
# 对大小做定义,默认是下面的,如果要修改的话,需要把注释去掉

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
# 这里说明:单位不区分大小写,因此1GB 1GB 1GB都相同
网络(NETWORK)
################### NETWORK #####################
bind 127.0.0.1			# 默认只支持本地访问(即你安装Redis的那台虚拟机或服务器)
protected-mode yes		# 保护模式,yes是开启状态,no是关闭,防止被访问和利用
port 6379				# 端口号,默认是6379
常规(GENERAL)
############## GENERAL ##################
daemonize no				# 守护进程,是否在后台执行,yes:后台运行;no:不是后台运行
pidfile /var/run/redis_6379.pid		redis的进程文件

# 日志
# 级别包括:debug(很多信息,方便开发、测试),verbose(许多有用的信息,但是没有debug级别信息多),notice(适当的日志级别,适合生产环境),warn(只有非常重要的信息)
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice				# 指定了日志级别是notice
logfile ""					# 指定了日志的文件名和位置,如果" "里面为空,则为标准输出

# 数据库
databases 16				# 这里表明Redis默认有16个数据库

# 现实logo	
always-show-logo yes		# 是否总是启动的时候现实Redis的logo
快照(SNAPSHOTTING)

快照即持久化操作,在设定的多少时间内,若作出了多少数据更改,则将内存中的数据快照写入到磁盘中。

########## SNAPSHOTTING  #############
# 规则:sava x y  ,即在x秒内,至少完成y次数据更改,则实现持久化操作

save 900 1		# 如果在900s内,至少有1个key 进行了修改,则实行持久化操作
save 300 10
save 60 10000


# 当RDB持久化出现错误后,是否依然进行继续进行工作,yes:不能进行工作,no:可以继续进行工作
stop-writes-on-bgsave-error yes

# 是否压缩rdb文件,选择压缩会占用一定的CPU资源,但不压缩会使数据库文件占用空间变大,一般都会打开压缩
rdbcompression yes

# 保存rdb文件时,进行检查校验,会有一定的性能耗损,大概10%左右,如果追求极致性能,可以关闭
rdbchecksum yes

# 指定本地数据库文件名
dbfilename dump.rdb

# 指定数据库存放的目录,默认是当前目录下
dir ./
复制(REPLICATION )

配置主从复制

############### REPLICATION ###############
# replicaof <masterip> <masterport>		# 配置主节点IP,主节点端口号
# masterauth <master-password>			# 主节点密码

在Redis命令行中通过命令配置的主从复制是暂时的,永久生效只有通过配置文件设置。

安全(SECURITY )
############# SECURITY ############
# 设置密码为123456,实际情况中,最好设置一个复杂的密码
# requirepass foobared
requirepass 123456

也可以在Redis客户端中,通过命令来设置密码

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass		# 查看密码
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass "123456" 	# 设置密码为123456
OK
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.    # 因为没输密码,所以没权限
127.0.0.1:6379> set name 1
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456    			   # 输入密码
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name kaisa
OK
客户端(CLIENTS )
############# CLIENTS ############
# 设置Redis的默认最大登录客户端数量,如果超过了maxclients,redis会给新的连接发送’max number of clients reached’,并关闭连接

# maxclients 10000		
内存管理(MEMORY MANAGEMENT )
########## MEMORY MANAGEMENT ##########
# 设置redis使用内存字节数,当达到内存最大值时,redis会根据选择的逐出策略尝试删除key
# maxmemory <bytes>

# 内存超过设定最大值之后的处理策略
# maxmemory-policy noeviction	  #不移除任何key,只是返回一个写错误。

# 有这些处理策略:
 volatile-lru -> Evict using approximated LRU among the keys with an expire set.
 allkeys-lru -> Evict any key using approximated LRU.
 volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
 volatile-random -> Remove a random key among the ones with an expire set.
 allkeys-random -> Remove a random key, any key.
 volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
 noeviction -> Don't evict anything, just return an error on write operations.
 即:
 1、volatile-lru:利用LRU算法移除设置过过期时间的key。
 2、volatile-random:随机移除设置过过期时间的key。
 3、volatile-ttl:移除即将过期的key,根据最近过期时间来删除(辅以TTL)
 4、allkeys-lru:利用LRU算法移除任何key。
 5、allkeys-random:随机移除任何key。
 6、noeviction:不移除任何key,只是返回一个写错误。
AOF配置(APPEND ONLY MODE)
######### APPEND ONLY MODE ###########
# 默认使用RDB方式持久化,大部分情况下,RDB就够用了,AOF的出现是弥补RDB的不足
appendonly no						# 默认是不开启AOF模式
appendfilename "appendonly.aof"		# 指定本地持久化文件的名字

# AOF持久化策略配置
# appendfsync always       		# always表示每次写入都执行fsync,以保证数据同步到磁盘
appendfsync everysec			# everysec表示每秒执行一次fsync,可能会导致丢失这1s数据
# appendfsync no				# no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值