05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:  Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用。   键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表示取出所有的key 127.0.0.1:6379> keys * 1) "age" 2) "n


Redis常用命令

Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用。

 

键值相关命令:

Keys:返回满足给定pattern的所有key

用表达式*表示取出所有的key

127.0.0.1:6379> keys *

1) "age"

2) "name"

3) "age2"

127.0.0.1:6379> keys a*

1) "age"

2) "age2"

127.0.0.1:6379>

 

Exists:确认一个key是否存在

127.0.0.1:6379> exists name

(integer) 1

127.0.0.1:6379> exists toto

(integer) 0

127.0.0.1:6379>

 

 

del:删除一个key.

127.0.0.1:6379> set toto1 toto

OK

127.0.0.1:6379> keys *

1) "name"

2) "age2"

3) "age"

4) "toto1"

127.0.0.1:6379> del toto1     //删除toto1这个键。

(integer) 1

127.0.0.1:6379> del toto1     //再次删除的时候删除不成功

(integer) 0

127.0.0.1:6379> exists toto1   //

(integer) 0

127.0.0.1:6379> keys *

1) "name"

2) "age2"

3) "age"

127.0.0.1:6379>

 

expire:设置一个key的过期时间

在本例中,设置addr这个key的过期时间是10秒,然后不断的用ttl来获取这个key的有效时长,直至-1,说明此值已过期。

 

expiree addr 10表示:对addr设置过期时间为10秒。

ttl查询剩余的过期时间,当返回-1的时候表示已经过期了。

127.0.0.1:6379> set age 20    //设置一个keyage的值。

OK

127.0.0.1:6379> get age

"20"

127.0.0.1:6379> expire age 10

(integer) 1

127.0.0.1:6379> ttl age

(integer) 8                                                                     

127.0.0.1:6379> ttl age

(integer) 5

127.0.0.1:6379> ttl age

(integer) 3

127.0.0.1:6379> ttl age

(integer) -2

127.0.0.1:6379> ttl age

(integer) -2

127.0.0.1:6379> ttl age

(integer) -2

127.0.0.1:6379> exists age

(integer) 0

127.0.0.1:6379> keys *    //查看age是否还存在

1) "name"

2) "age2"

127.0.0.1:6379>

 

move:将当前数据库中的key转移到其它数据库中。

选择数据库,要用到select,select 0表示选择到当前数据库。Select 1表示第二个数据库,一共是从015个数据库,总共是16个数据库。(注意,进入redis的时候默认进入的是0数据库)

127.0.0.1:6379> select 0

OK

127.0.0.1:6379> set age 30

OK

127.0.0.1:6379> get age

"30"

127.0.0.1:6379> move age 1

(integer) 1

127.0.0.1:6379> get age

(nil)

127.0.0.1:6379> select 1

OK

127.0.0.1:6379[1]> get age

"30"

127.0.0.1:6379[1]>

 

persist:移除给定key的过期时间

127.0.0.1:6379[1]> select 1

OK

127.0.0.1:6379[1]> keys *

1) "age"

127.0.0.1:6379[1]> expire age 300   //设置age的过期时间为300

(integer) 1

127.0.0.1:6379[1]> ttl age

(integer) 297

127.0.0.1:6379[1]> ttl age

(integer) 293

127.0.0.1:6379[1]> persist age    //取消age的过期

(integer) 1

127.0.0.1:6379[1]> ttl age

(integer) -1

127.0.0.1:6379[1]> exists age

(integer) 1

127.0.0.1:6379[1]> keys *

1) "age"

127.0.0.1:6379[1]>

 

randomkey:随机返回key空间的一个key

127.0.0.1:6379[1]> keys *

1) "gender"

2) "name"

3) "address"

4) "age"

127.0.0.1:6379[1]> randomkey       //随机获得一个key

"gender"

127.0.0.1:6379[1]> randomkey

"address"

127.0.0.1:6379[1]> randomkey

"gender"

127.0.0.1:6379[1]>

 

rename:重命名key

127.0.0.1:6379[1]> keys *

1) "gender"

2) "name"

3) "address"

4) "age"

127.0.0.1:6379[1]> rename age nianling    age这个key重新命名为nianling

OK

127.0.0.1:6379[1]> keys *

1) "gender"

2) "name"

3) "address"

4) "nianling"

127.0.0.1:6379[1]>

 

type:返回键的数据类型

127.0.0.1:6379[1]> type name

string

127.0.0.1:6379[1]>

 

服务器的相关命令

ping:测试连接是否存活

 

echo:在命令行打印一些内容

127.0.0.1:6379> echo toto

"toto"

127.0.0.1:6379> echo toto2

"toto2"

 

select:选择数据库.Redis数据库编号从0~15,我们可以选择任意一个数据库来进行数据的存取。

当选择16时,报错,说明没有编号为16的这个数据库。

quit:退出连接,或者exit

 

dbsize:返回当前数据库中key的数目。

127.0.0.1:6379> keys *

1) "age2"

2) "name"

127.0.0.1:6379> dbsize    

(integer) 2                //返回0表示有2key

127.0.0.1:6379> select 1

OK

127.0.0.1:6379[1]> keys *

1) "gender"

2) "name"

3) "address"

4) "nianling"

127.0.0.1:6379[1]> dbsize

(integer) 4                 //返回4表示有4key

127.0.0.1:6379[1]>

 

info:获取服务器的信息和统计

127.0.0.1:6379[1]> info

# Server

redis_version:2.8.19

redis_git_sha1:00000000

redis_git_dirty:0

redis_build_id:b80fb73838c77f5a

redis_mode:standalone

os:Linux 2.6.32-358.el6.x86_64 x86_64

arch_bits:64

multiplexing_api:epoll

gcc_version:4.4.7

process_id:5136

run_id:607e299bec2e4e492d138ee1a5a29871d0062e24

tcp_port:6379

uptime_in_seconds:2863

uptime_in_days:0

hz:10

lru_clock:14609760

config_file:

 

# Clients

connected_clients:1

client_longest_output_list:0

client_biggest_input_buf:0

blocked_clients:0

 

# Memory

used_memory:504152

used_memory_human:492.34K

used_memory_rss:7958528

used_memory_peak:504152

used_memory_peak_human:492.34K

used_memory_lua:35840

mem_fragmentation_ratio:15.79

mem_allocator:jemalloc-3.6.0

 

# Persistence

loading:0

rdb_changes_since_last_save:8

rdb_bgsave_in_progress:0

rdb_last_save_time:1423893041

rdb_last_bgsave_status:ok

rdb_last_bgsave_time_sec:-1

rdb_current_bgsave_time_sec:-1

aof_enabled:0

aof_rewrite_in_progress:0

aof_rewrite_scheduled:0

aof_last_rewrite_time_sec:-1

aof_current_rewrite_time_sec:-1

aof_last_bgrewrite_status:ok

aof_last_write_status:ok

 

# Stats

total_connections_received:1

total_commands_processed:40

instantaneous_ops_per_sec:0

total_net_input_bytes:969

total_net_output_bytes:584

instantaneous_input_kbps:0.00

instantaneous_output_kbps:0.00

rejected_connections:0

sync_full:0

sync_partial_ok:0

sync_partial_err:0

expired_keys:0

evicted_keys:0

keyspace_hits:7

keyspace_misses:1

pubsub_channels:0

pubsub_patterns:0

latest_fork_usec:0

 

# Replication

role:master

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

 

# CPU

used_cpu_sys:3.51

used_cpu_user:0.93

used_cpu_sys_children:0.00

used_cpu_user_children:0.00

 

# Keyspace

db0:keys=2,expires=0,avg_ttl=0

db1:keys=4,expires=0,avg_ttl=0

127.0.0.1:6379[1]>

 

config get:实时传储收到的请求。

127.0.0.1:6379[1]> config get *

  1) "dbfilename"

  2) "dump.rdb"

  3) "requirepass"

  4) ""

  5) "masterauth"

  6) ""

  7) "unixsocket"

  8) ""

  9) "logfile"

 10) ""

 11) "pidfile"

 12) "/var/run/redis.pid"

 13) "maxmemory"

 14) "0"

 15) "maxmemory-samples"

 16) "3"

 17) "timeout"

 18) "0"

 19) "tcp-keepalive"

 20) "0"

 21) "auto-aof-rewrite-percentage"

 22) "100"

 23) "auto-aof-rewrite-min-size"

 24) "67108864"

 25) "hash-max-ziplist-entries"

 26) "512"

 27) "hash-max-ziplist-value"

 28) "64"

 29) "list-max-ziplist-entries"

 30) "512"

 31) "list-max-ziplist-value"

 32) "64"

 33) "set-max-intset-entries"

 34) "512"

 35) "zset-max-ziplist-entries"

 36) "128"

 37) "zset-max-ziplist-value"

 38) "64"

 39) "hll-sparse-max-bytes"

 40) "3000"

 41) "lua-time-limit"

 42) "5000"

 43) "slowlog-log-slower-than"

 44) "10000"

 45) "latency-monitor-threshold"

 46) "0"

 47) "slowlog-max-len"

 48) "128"

 49) "port"

 50) "6379"

 51) "tcp-backlog"

 52) "511"

 53) "databases"

 54) "16"

 55) "repl-ping-slave-period"

 56) "10"

 57) "repl-timeout"

 58) "60"

 59) "repl-backlog-size"

 60) "1048576"

 61) "repl-backlog-ttl"

 62) "3600"

 63) "maxclients"

 64) "4064"

 65) "watchdog-period"

 66) "0"

 67) "slave-priority"

 68) "100"

 69) "min-slaves-to-write"

 70) "0"

 71) "min-slaves-max-lag"

 72) "10"

 73) "hz"

 74) "10"

 75) "repl-diskless-sync-delay"

 76) "5"

 77) "no-appendfsync-on-rewrite"

 78) "no"

 79) "slave-serve-stale-data"

 80) "yes"

 81) "slave-read-only"

 82) "yes"

 83) "stop-writes-on-bgsave-error"

 84) "yes"

 85) "daemonize"

 86) "no"

 87) "rdbcompression"

 88) "yes"

 89) "rdbchecksum"

 90) "yes"

 91) "activerehashing"

 92) "yes"

 93) "repl-disable-tcp-nodelay"

 94) "no"

 95) "repl-diskless-sync"

 96) "no"

 97) "aof-rewrite-incremental-fsync"

 98) "yes"

 99) "aof-load-truncated"

100) "yes"

101) "appendonly"

102) "no"

103) "dir"

104) "/usr/local/redis/bin"

105) "maxmemory-policy"

106) "volatile-lru"

107) "appendfsync"

108) "everysec"

109) "save"

110) "3600 1 300 100 60 10000"

111) "loglevel"

112) "notice"

113) "client-output-buffer-limit"

114) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"

115) "unixsocketperm"

116) "0"

117) "slaveof"

118) ""

119) "notify-keyspace-events"

120) ""

121) "bind"

122) ""

127.0.0.1:6379[1]>

127.0.0.1:6379[1]> config get timeout

1) "timeout"

2) "0"

127.0.0.1:6379[1]>

 

flushdb:删除当前选择数据库中的所有key(也就是说flushdb的作用是清空当前数据库)

127.0.0.1:6379[2]> select 1

OK

127.0.0.1:6379[1]> set age 20

OK

127.0.0.1:6379[1]> set name zhangsan

OK

127.0.0.1:6379[1]> set gender male

OK

127.0.0.1:6379[1]> keys *

1) "name"

2) "gender"

3) "age"

127.0.0.1:6379[1]> flushdb

OK

127.0.0.1:6379[1]> keys *

(empty list or set)

127.0.0.1:6379[1]>

 

flushall:删除所有数据库中的所有key(这个命令不管你在哪个数据库中执行,都会把所有数据库中的所有key都删除掉)

127.0.0.1:6379[1]> select 0

OK

127.0.0.1:6379> dbsize

(integer) 3

127.0.0.1:6379> keys *

1) "name"

2) "age"

3) "age2"

127.0.0.1:6379> select 1

OK

127.0.0.1:6379[1]> keys *

(empty list or set)

127.0.0.1:6379[1]> set age 1

OK

127.0.0.1:6379[1]> set name zhangsan      左侧用来确定0 1 数据库是否有key

OK

127.0.0.1:6379[1]> keys *

1) "name"

2) "age"

127.0.0.1:6379[1]> dbsize

(integer) 2

127.0.0.1:6379[1]> flushall           //执行了flushall之后01数据库都变成空了

OK

127.0.0.1:6379[1]> keys *

(empty list or set)

127.0.0.1:6379[1]> select 0

OK

127.0.0.1:6379> keys *

(empty list or set)

127.0.0.1:6379>

 

 

 

 

 

 

 

 

 

 

 

 

 

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6天前
|
监控 Linux Shell
|
7天前
|
NoSQL Unix Linux
Redis 服务器
10月更文挑战第19天
12 1
|
23天前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
42 3
|
24天前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
|
23天前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
34 1
|
26天前
|
存储 监控 NoSQL
Redis的实现二: c、c++的网络通信编程技术,让服务器处理多个client
本文讨论了在C/C++中实现服务器处理多个客户端的技术,重点介绍了事件循环和非阻塞IO的概念,以及如何在Linux上使用epoll来高效地监控和管理多个文件描述符。
22 0
|
18天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
78 6
|
16天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
50 3
Mysql(4)—数据库索引
|
1天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
19 2
|
4天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
20 4