redis使用笔记、命令行等

redis是什么?
最简单的问题就最不好回答。

redis有什么用?
这个反而好回答。缓存,分布式锁等。

那么回到问题的原点,redis是什么?
是一款内存数据库,键值对(key-value结构)的数据库,高性能的数据库。
最常用的是远程缓存数据,例如用户机构树、分布式锁等。

这样答看起来稍微像那么回事。

作用

缓存

缓存既是redis的特性,也是作用。
redis数据存在内存中,对比数据库来说。 性能高,支持并发等。

分布式锁

因为其远程的特性。 多应用可以通过连接一个redis,来实现分布式锁。

安装

yum命令安装

yum install epel-release;
yum install redis;

命令

redis-cli命令

redis-cli是连接redis命令
例子:

redis-cli -h 10.12.168.1 -p 6379 -a '1234'

auth的使用,auth是指定密码。
一般有两种情况。

第一种(-a指定密码):
redis-cli -h 10.12.168.1 -p 6379 -a '1234'

那么,如果连接的时候忘记指定密码了,难道要退出重新连接吗? 当然不用。
再执行一条auth命令即可。

第二种(先连接,然后再执行auth命令):
redis-cli -h 10.12.168.1 -p 6379;
auth 123456;

redis-cli输入了密码还是提示没权限

1、密码错误了。
2、密码要加单引号,如:-p '1234'。(实测确实如此)

不但要连接,而且要有权限

连接成功就能说明密码没问题吗?
并不能。
因为如果没设置密码,也是可以连通的,但是没有高级权限。例如只能info,不能select 0。
所以,校验密码的时候。连通之后一定加个select命令,确保密码是正确的。

注:select 0是非常重要的
通过这个可以测试出防火墙是否正常。

之前吃过这个亏,info可以展示就认为没问题了。后来项目报错,连接不上,最后发现是方后墙的问题,真心。。。

查看版本号

不用进入redis命令行。 shell界面直接输入:

redis-server -v
redis-server --version
查看用到了哪些类型

这个没有办法,只能先keys,然后再type某个值。

scan命令

scan命令很有用。

语法:

SCAN 0 MATCH 'pattern' [WITHSCAN] [COUNT] [LIMIT] [OFFSET]
    0:表示从键值对的头部开始扫描,而不是从尾部开始。
    MATCH:用于指定扫描的键值对匹配模式。
    'pattern':键值对匹配模式,可以是一个字符串,也可以是一个正则表达式。
    WITHSCAN:可选参数,表示是否使用WITHSCAN模式。 
    COUNT:可选参数,表示返回的有序集合中的元素数量。 
    LIMIT:可选参数,表示返回的有序集合中的最大元素数量。
    OFFSET:可选参数,表示从有序集合中的哪个元素开始返回。 

示例:

scan 0 match userName* count 20 # 找出匹配的记录,并展示前20条
scan 0 # 从第一条开始,默认展示10条

删除和批量删除

用del命令。
语法:

DEL key [key ...]  

一目了然,可以删除一条,也可删除多条(key用空格分隔)

模糊匹配批量删除

很多小伙伴有这个需求,模糊匹配删除,很遗憾,redis没这个功能。
但是有办法可以变通实现。

命令:

redis-cli -h 192.168.0.1 -p 6379 -a ‘1234’ scan 0 match userName* count 10 | xargs redis-cli -h 192.168.0.1 -p 6379 -a ‘1234’ del

这个命令还可以分开执行,先执行|之前的,看下结果对不对,如果正确,再把后面的语句加上执行。

keys命令和scan命的区别

keys命令是单线程的,会阻塞其他,scan命令是异步的,不会阻塞其他。

假设有几百万条数据,keys的处理时间约为几十秒,那么就会出现一种情况,此时其他操作进不来,是非常危险的。但是用scan就不会有这个问题。

查看超时时间

ttl命令即可,比较简单:
ttl keyName # 返回的单位是秒(s)

redis内存相关

redis占用内存比较多,客户要求解决,怎么办呢?

1、memory命令。
2、redis内存工具。
3、redisTemplate写工具类,看字节大小。

memory命令

这个命令很好,但是需要4.0以上的版本,使用的redis可能不支持这个命令。

redis工具-insight

这个是官方推荐的。
https://redis.io/insight/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值