Redis常用命令
Redis提供了丰富的命令对数据库和各种数据类型进行操作,这些命令可以再Linux终端使用.
1.键值相关命令
2.服务器相关命令
一、键值相关命令
1、get
get 键值
当 key 不存在时,返回 nil ,否则,返回 key 的值。如果返回“1”,则表示键值锁住了.
2.set
用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
redis 127.0.0.1:6379> SET key "value" OK
3、keys
返回满足给定pattern的所有键.
redis 127.0.0.1:6379>keys * 或者keys my* 1)"myzset2" 2)"myzset3" 3)"mylist" 4)"myset2" 5)"k_zs_1"
4、exists
确认一个key是否存在.
redis 127.0.0.1:6379>exists name (integer)0 redis 127.0.0.1:6379>exists age (integer)1 redis 127.0.0.1:6379> 从结果来看,name键不存在,age键存在.
5、del
删除一个key
redis 127.0.0.1:6379>del age (integer)1 (1,代表删除成功) redis 127.0.0.1:6379>exists age (integer)0 redis 127.0.0.1:6379>
批量删除key值:
例如: 删除以TimeLock_SAVETRANSDEAL_开头的所以key. /usr/local/redis/bin/redis-cli keys "TimeLock_SAVETRANSDEAL_*" |xargs /usr/local/redis/bin/redis-cli del
6、expire
设置一个key的过期时间
redis 127.0.0.1:6379>expire addr 10 (integer)1 redis 127.0.0.1:6379>ttl addr (integer)8 redis 127.0.0.1:6379>expire addr (integer)-1 #本例中,我们设置addr这个key的过期时间是10秒,然后我们不断的用ttl来获取这个key的有效时长,直到为-1说明此值以过期.
7、move
将当前数据库中的key转移到其他数据库中.
redis 127.0.0.1:6379>select 0 (0代表选择到当前数据库) OK redis 127.0.0.1:6379>set age 30 "30" redis 127.0.0.1:6379>move age 1 (将age从0数据库移动到1数据库) (integer)1 redis 127.0.0.1:6379>get age (nil) redis 127.0.0.1:6379>select 1 OK redis 127.0.0.1:6379>get age "30"
8、persist
移除给定key的过期时间
redis 127.0.0.1:6379> expire age 300 (integer)1 redis 127.0.0.1:6379>ttl age (integer)294 redis 127.0.0.1:6379>persist age (integer)1 redis 127.0.0.1:6379>ttl age (integer)-1 (-1代表取消掉过期时间) redis 127.0.0.1:6379>
9、randomkey
随机返回key空间的一个key
redis 127.0.0.1:6379>randomkey “mylist” redis 127.0.0.1:6379>randomkey “mylist5” redis 127.0.0.1:6379>
10、rename
重命名key
redis 127.0.0.1:6379>keys my* 1)"age" redis 127.0.0.1:6379>rename age age_new OK redis 127.0.0.1:6379>keys * 1)“age_new” redis 127.0.0.1:6379>
11、type
返回值的类型
redis 127.0.0.1:6379>type addr string redis 127.0.0.1:6379>type myzset2 zset redis 127.0.0.1:6379>type mylist list redis 127.0.0.1:6379>
12.统计key值的个数。
统计TimeLock_SAVETRANSDEAL_这个key值的个数. /usr/local/redis/bin/redis-cli keys "*TimeLock_SAVETRANSDEAL_*"|wc -l
二、服务器的相关命令:
1、ping
测试连接是否存活
redis 127.0.0.1:6379>ping PONG (代表连接正常) Could not connect to Redis at 127.0.0.1:6379:Connection refused (连接失败)
2、echo
在命令行打印一些内容
redis 127.0.0.1:6379>echo lijie "lijie" redis 127.0.0.1:6379>
3、select
选择数据库.Redis数据库编号从0-15,我们可以选择任意一个数据库来进行数据的存取.
redis 127.0.0.1:6379>select 1 OK redis 127.0.0.1:6379>select 16 (error)err invalid DB index (没有编号为16的数据库) redis 127.0.0.1:6379>
4、quit exit crtl+c
退出连接
redis 127.0.0.1:6379>quit [root@localhost ]#
5、dbsize
返回当前数据库中key的数目
redis 127.0.0.1:6379>dbsize (integer)18 (此库中有18个key) redis 127.0.0.1:6379>
6、info
获取服务器的信息和统计.
7、config get
实时传储收到的请求
redis 127.0.0.1:6379>config get dir 1)"dir" 2)"/root/4setup/redis-2.2.12" redis 127.0.0.1:6379> #本例中我们获取了dir这个参数配置的值,如果想获取全部参数的配置也很简单,只要执行“config get ”即可将全部的值显示出来.
config set
Redis Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启
使用config set命令设置redis密码,如果没在配置文件配置则redis重启后失效.
redis 127.0.0.1:6379> config set requirepass 123456 redis 127.0.0.1:6379> config get requirepass #查询密码 (error) ERR operation not permitted redis 127.0.0.1:6379> auth 123456 #密码验证 OK redis 127.0.0.1:6379> config get requirepass #再次查询 1) "requirepass" 2) "123456"
8、flushdb
删除当前选择数据库中的所有key
redis 127.0.0.1:6379>dbsize (integer)18 redis 127.0.0.1:6379>flushdb OK redis 127.0.0.1:6379>dbsize (integer)0 redis 127.0.0.1:6379> #在本例中我们将0号数据库中的key都清除了.
9、flushall
删除所有数据库中的所有key .
10,查看redis版本
[root@redis-m bin]# ./redis-cli -v redis-cli 2.8.7
11.redis远程连接
redis-cli -h 192.168.1.1 -p 6379 -a password
12.Redis 慢查询
何为慢查询?
系统在命令执行前后计算每条命令的执行时间,当超过预定阀值时,记录命令的发生时间,耗时,命令的详细信息等。
Redis客户端执行一条命令分为发送命令、命令排队、命令执行、返回结果。慢查询只统计命令执行,所以没有慢查询并不代表客户端没有超时问题。
慢查询的两个配置参数
slowlog-log-slower-than: 单位微秒(1秒=1000毫秒=1000,000微妙),指定redis执行命令的最大时间,超过将记录到慢查询日志中,不接受负值,如果设置为0,每条命令都要记录到慢查询日志中. slowlog-max-len: 设置慢查询日志长度,如果慢查询日志已经到最大值,如果有新命令需要记录,就将最老那条记录删除.
获取慢查询的配置信息:
10.100.62.39:6379> config get slowlog-log-slower-than 1) "slowlog-log-slower-than" 2) "10000" 10.100.62.39:6379> config get slowlog* 1) "slowlog-log-slower-than" 2) "10000" 3) "slowlog-max-len" 4) "128" 10.100.62.39:6379>
设置慢查询参数
config set slowlog-log-slower-than 20000 config set slowlog-max-len 1024 config rewrite
获取慢查询日志slowlog get 1,1表示输出前面一条。
10.100.62.39:6379> slowlog get 1 1) 1) (integer) 403 2) (integer) 1531289663 3) (integer) 10492 4) 1) "scan" 2) "5395137" 3) "MATCH" 4) "*" 5) "COUNT" 6) "10000" 10.100.62.39:6379>
每个命令都有4个属性组成,分别是慢查询日志的标识ID,发生时间戳、命令耗时、执行命令和参数
获取当前慢查询日志列表的长度
10.100.62.39:6379> slowlog len (integer) 128
慢查询日志重置, 其实是清除了慢查询日志
10.100.62.39:6379> slowlog reset OK
参考文档:https://blog.csdn.net/chenlushun12/article/details/79568766