redis常用命令

一、Redis基础命令

1. 查看版本

查看redis的版本有两种方式:

1). redis-server --version 和 redis-server -v

root@44ef842a39cd:/data# redis-server --version
Redis server v=7.0.8 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=e57e652782ee2324
root@44ef842a39cd:/data# redis-server -v
Redis server v=7.0.8 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=e57e652782ee2324

2). redis-cli --version 和 redis-cli -v

root@44ef842a39cd:/data# redis-cli -v
redis-cli 7.0.8

严格上说:通过 redis-cli 得到的结果应该是redis-cli 的版本,
但是 redis-cli 和redis-server 一般都是从同一套源码编译出的。所以应该是一样的。

2. 启动客户端

#redis-cli -h ip -p:端口号;-a:密码
root@44ef842a39cd:/data# redis-cli -h 127.0.0.1 -p 6379 -a sinoeyes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379>

3. 其他

ping:测试连接,成功返回pong
auth password:连接redis的密码。
select index:选择数据库,redis默认的数据库是0号数据库,系统默认共16个数据库。
dbsize:查看当前数据库大小,或者说有多少个key。
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
info:提供服务器的信息和统计
config get:获取配置文件信息(常用)
config set:动态地调整 Redis 服务器的配置(configuration)而无须重启,可以修改的配置参数可以使用命令 CONFIG GET * 来列出(常用)
config rewrite:Redis 服务器时所指定的 redis.conf 文件进行改写
flushdb:清除当前数据库的所有数据。谨慎使用
flushall:清空所有数据库的所有数据,并且还会删除掉持久化文件rdb里面的内容(flushdb命令不会)。慎之又慎
del key [key...]:万能删除key。不管你什么类型的key都可以删除掉。

二、Redis操作key的一些命令

#randomkey:返回当前数据库里面的一个随机key
127.0.0.1:6379> randomkey
"key701"

#keys pattern:查询当前数据库的key。pattern:*、?、[]
127.0.0.1:6379> keys *
1) "key702"
2) "key701"
3) "key70"
127.0.0.1:6379> keys *70
1) "key70"
127.0.0.1:6379> keys ??????
1) "key702"
2) "key701"
127.0.0.1:6379> keys key7[0eaw]
1) "key70"

#type key:返回key存储的类型,返回其类型,不存在返回none。
127.0.0.1:6379> type key70
string
#exists key [key...] :判断某个key是否存在,返回存在的个数。
127.0.0.1:6379> exists key70
(integer) 1
#del key [key...]:删除key,返回存在的个数。
127.0.0.1:6379> del key703
(integer) 1
#rename key newkey:成功返回ok,注意如果newkey存在了,那么就会把key的对应的值给覆盖过去,换句话说删除掉了newkey。如果key不存在会报错,(error) ERR syntax error。
127.0.0.1:6379> rename key702 key703
OK
127.0.0.1:6379> keys *
1) "key703"
2) "key701"
3) "key70"
#renamenx key newkey:如果newkey不存在则修改成功。
127.0.0.1:6379> renamenx key703 key704
(integer) 1
127.0.0.1:6379> keys *
1) "key704"
2) "key701"
3) "key70"
#move key db:将key移动到db数据库(从0开始),如果目标数据库db已经存在key会失败,如果key不存在与当前数据库会失败。返回0。不能自己移动自己。会报错。
#expire key:整数值:设置key的生命周期以秒为单位,如果key不存在返回0,设置成功返回1。
#pexpire key 整数值:设置key的生命周期以毫秒为单位 。如果key不存在返回0,设置成功返回1。
#ttl key:获得一个key的活动时间(秒)。如果key不存在返回-2,key没有过期时间则返回-1。
#pttl key:查询key 的生命周期(毫秒)。
#dump key:序列化给定 key ,并返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键。

三、redis.conf设置最大内存

1、通过配置文件配置
通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小。

//设置Redis最大占用内存大小为100M
maxmemory 100mb
redis的配置文件不一定使用的是安装目录下面的redis.conf文件,启动redis服务的时候是可以传一个参数指定redis的配置文件的。

2、通过命令修改
Redis支持运行时通过命令动态修改内存大小
登录

redis-cli -h 127.0.0.1 -p 6379 -a "mypass"

//设置Redis最大占用内存大小为100M

127.0.0.1:6379> config set maxmemory 100mb

//获取设置的Redis能使用的最大内存大小

127.0.0.1:6379> config get maxmemory

如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存
redis.conf中的maxmemory定义可用最大物理内存,有多种书写方式,以下均为合法:
maxmemory 1048576
maxmemory 1048576B
maxmemory 1000KB
maxmemory 100MB
maxmemory 1GB
maxmemory 1000K
maxmemory 100M
maxmemory 1G
没有带单位尾巴的为字节数,以B结尾的表示相应的大小。但需要注意KB和K、MB和M、GB和G是不同的,如1K表示1000字节,而1KB则为1024字节。

3、查看当前redis节点内存状态

[root@app01 fastdfs]# docker exec -it redis redis-cli -h 127.0.0.1 -p 6379 -a sinoeyes info | grep memory
used_memory:849488
used_memory_human:829.58K
used_memory_rss:2682880
used_memory_rss_human:2.56M
used_memory_peak:849488
used_memory_peak_human:829.58K
used_memory_peak_perc:100.00%
used_memory_overhead:836262
used_memory_startup:786624
used_memory_dataset:13226
used_memory_dataset_perc:21.04%
total_system_memory:16656908288
total_system_memory_human:15.51G
used_memory_lua:37888
used_memory_lua_human:37.00K
maxmemory:0
maxmemory_human:0B
maxmemory_policy:noeviction
[root@app01 fastdfs]#

在这里插入图片描述

四、Redis的内存淘汰

既然可以设置Redis最大占用内存大小,那么配置的内存就有用完的时候。那在内存用完的时候,还继续往Redis里面添加数据不就没内存可用了吗?

实际上Redis定义了几种策略用来处理这种情况:

noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)
allkeys-lru:从所有key中使用LRU算法进行淘汰
volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰
allkeys-random:从所有key中随机淘汰数据
volatile-random:从设置了过期时间的key中随机淘汰
volatile-ttl:在设置了过期时间的key中,根据key的过期时间进行淘汰,越早过期的越优先被淘汰
当使用volatile-lru、volatile-random、volatile-ttl这三种策略时,如果没有key可以被淘汰,则和noeviction一样返回错误。

如何获取及设置内存淘汰策略
获取当前内存淘汰策略:

127.0.0.1:6379> config get maxmemory-policy

通过配置文件设置淘汰策略(修改redis.conf文件):

maxmemory-policy allkeys-lru

通过命令修改淘汰策略:

127.0.0.1:6379> config set maxmemory-policy allkeys-lru

五. 压力测试

redis做压测可以用自带的redis-benchmark工具,使用简单,
#进入到redis安装位置
1.redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000
#如果不行就执行,因为这个不是Linux系统自带的命令
2…/redis-benchmark -h localhost -p 6379 -c 100 -n 100000

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值