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    //设置一个key为age的值。

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表示第二个数据库,一共是从0到15个数据库,总共是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表示有2个key

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表示有4个key

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之后0和1数据库都变成空了

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>

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

  1. java做一个简单的数据库,哪个嵌入式数据库用Java写成一个简单的键/值存储?

    我最近问了一个关于Neo4j的问题,我有工作,似乎很好.它是可嵌入的,它是用Java编写的,没有(太)许多依赖. 然而,它是一个图形数据库,我不知道这是一个好主意或不使用它作为一个简单的键/值存储. ...

  2. Oracle数据库使用序列my_seq来生成SUTD_ID主键值

    使用如下代码来生成主键: 删除序列:drop sequence my_seq; 创建序列:create sequence my_seq;

  3. Redis 数据库的安装与常用命令解析

    目录 一.安装部署 1. 环境配置 2. 编译安装 3. 设置 Redis 相关配置文件 4. 启动服务 二.Redis 常用工具 1. redis-cli 命令行工具(远程登陆) 2. redis- ...

  4. Redis数据库教程——系统详解学习Redis全过程

    Redis数据库教程--系统详解学习Redis全过程 Redis快速入门:Key-Value存储系统简介 Key-Value存储系统:     Key-Value Store是当下比较流行的话题,尤其 ...

  5. SpringBoot学习笔记(六)——Redis数据库

    Redis数据库 灵魂拷问: 不是学了MySQL吗,存数据也能存了啊,又学一个数据库干嘛? 在前面我们学习了MySQL数据库,它是一种传统的关系型数据库,我们可以使用MySQL来更好地管理和组织我们的 ...

  6. redis数据库的设计实例

    本文介绍如何使用redis设计一个小的微博系统数据库(该例子来源于redis官网文档). 对于关系型数据库,设计数据库通常等同于设计表.模式等.对于redis我们是不需要这些的,所以我们只需要设计我们 ...

  7. Redis数据库面试典籍30+ | 大别山码将

    Redis 什么是Redis? 简单来说 Redis 就是⼀个使⽤ C 语⾔开发的数据库(非关系型的数据库),不过与传统数据库不同的是 Redis 的数据是存在内存中的,也就是它是内存数据库,所以读写 ...

  8. Redis数据库基本操作

    一.Redis数据库和MySQL数据库的不同 MySQL数据库需要自己去创建数据库,Redis数据库不用自己创建数据库,默认情况下有0-15号数据库 Redis数据库没有表,数据是以key-value ...

  9. redis源码剖析(六)—— Redis 数据库、键过期的实现

    文章目录 数据库的实现 数据库读写操作 键的过期实现 数据库的实现 我们先看代码 server.h/redisServer struct redisServer{...//保存 db 的数组redis ...

  10. Redis数据库实现原理(划重点)

    Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每一项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库, ...

最新文章

  1. P2257 YY的GCD (莫比乌斯反演)
  2. 在Ubuntu上安装openResty #1
  3. android 画布旋转,Android-在安卓开发中,如何实现一个简单的图片旋转
  4. when is SAP UI5 sap-ui-core.js loaded
  5. mysql数据横表变成竖表_MySQL中横表和竖表相互转换
  6. CVPR 2019 | 旷视提出超分辨率新方法Meta-SR:单一模型实现任意缩放因子
  7. Golang并发模式基础
  8. 微博ID:SuHua_MF
  9. python把list的所有元素生成排列和组合
  10. java数组及循环专题练习(使用数组和循环结构实现一个简易的功能完善的订餐系统)
  11. c语言上机试题8,计算机考试二级C语言上机试题下[8]
  12. ES插件es-head下载和安装
  13. linux 中移动文件_如何在Linux中移动文件
  14. 基于eclipse和hiber的pojo、数据库表与mapping的相互转换
  15. 【NLP CS224N笔记】Lecture 12 - Information from parts of words Subword Models
  16. 计算机主硬盘隐藏分区大小,容量不翼而飞 解密四类硬盘空间隐藏占用(组图)
  17. 安装matlab贝叶斯网络工具箱
  18. JS中onpropertychange事件和onchange事件区别
  19. python输入一个字符串、计算其中小写字符的个数_利用键盘录入,输入一个字符串,统计该字符串中各个字符的数量,并输出(c/c++实现)...
  20. 1、Swoole是什么?你可以通过swoole干些什么?

热门文章

  1. 电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)
  2. Mac 下变更pip源
  3. Java 设计模式之外观模式
  4. boost::smart_ptr模块智能指针测试程序
  5. boost::signals2::trackable相关的测试程序
  6. BOOST_PP_CHECK_EMPTY宏相关的测试程序
  7. boost::hana::count用法的测试程序
  8. boost::detail::allocator模块的测试程序
  9. boost::core模块实现分配器解除分配
  10. ITK:重新运行管道不断变化的最大可能的地区