Redis基础命令实战Redis 基础命令实战
⽬录
Redis基础命令演⽰+讲解
Redis数据结构:String字符串
Redis数据结构:哈希hash
Redis数据结构:列表list
Redis数据结构:集合set
Redis数据结构:有序集合sortedset
Redis基础命令演⽰+讲解
$ ./redis-cli(--> 启动客户端)
127.0.0.1:6379> ping            (--> 测试是否连接成功)
PONG                            (--> PONG表⽰成功)
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379> info            (--> 查看系统信息)
# Server
redis_version:2.8.0(--> Redis的版本)
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:b94c80137a5a30dd
redis_mode:standalone
os:Darwin 17.4.0 x86_64
arch_bits:64
multiplexing_api:kqueue
gcc_version:4.2.1(--> gcc依赖的版本)
process_id:2513(--> 进程ID)
run_id:2ca59f8410854dfd760112f530bc726d4e9317cb
tcp_port:6379(--> 端⼝6379)
uptime_in_seconds:246(--> 运⾏时间(秒))
uptime_in_days:0(--> 运⾏时间(天))
hz:10
lru_clock:751494
config_file:
# Clients
connected_clients:1(--> 连接的客户端数量)
client_longest_output_list:0(--> slave的数量)
client_biggest_input_buf:0
blocked_clients:0
# Memory                        (--> 使⽤内存的⼀些说明)
used_memory:1002816(--> Redis 分配的内存总量)
used_memory_human:979.31K
used_memory_rss:2072576(--> Redis 分配的内存总量(包括内存碎⽚))
used_memory_peak:1002016
used_memory_peak_human:978.53K  (--> Redis所⽤内存的⾼峰值)
used_memory_lua:33792
mem_fragmentation_ratio:2.07(--> 内存碎⽚⽐率)
mem_allocator:libc
# Persistence                  (--> 持久化备份的⼀些参数)
loading:0
rdb_changes_since_last_save:0(--> 上次保存数据库之后,执⾏命令的次数)
rdb_bgsave_in_progress:0(--> 后台进⾏中的 save 操作的数量)
rdb_last_save_time:1517464135(--> 最后⼀次成功保存的时间点,以 UNIX 时间戳格式显⽰)
rdb_last_save_time:1517464135(--> 最后⼀次成功保存的时间点,以 UNIX 时间戳格式显⽰)rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:0(--> redis是否开启了aof备份模式)
aof_rewrite_in_progress:0(--> 后台进⾏中的 aof ⽂件修改操作的数量)
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
# Stats                        (--> 各种状态)
total_connections_received:1(--> 运⾏以来连接过的客户端的总数量)
total_commands_processed:2(--> 运⾏以来执⾏过的命令的总数量)
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0(--> 运⾏以来过期的 key 的数量)
evicted_keys:0(--> 运⾏以来删除过的key的数量)
keyspace_hits:0(--> 命中 key 的次数)
keyspace_misses:0(--> 不命中 key 的次数)
pubsub_channels:0(--> 当前使⽤中的频道数量)
pubsub_patterns:0(--> 当前使⽤的模式的数量)
latest_fork_usec:0
# Replication                  (--> 主从同步相关的数据)
role:master                    (--> 当前实例的⾓⾊master还是slave)
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                          (--> CPU)
used_cpu_sys:0.04
used_cpu_user:0.04
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# Keyspace                      (--> 数据库)
db0:keys=1,expires=0,avg_ttl=0(--> 各个数据库的 key 的数量,以及带有⽣存期的 key 的数量)db10:keys=4,expires=0,avg_ttl=0
127.0.0.1:6379> select 1(--> 选择第⼀个database)
OK
127.0.0.1:6379[1]> keys *      (--> 查看当前数据库都有那些键)
(empty list or set)
127.0.0.1:6379[1]> set 11
OK
127.0.0.1:6379[1]> flushdb      (--> 清除当前database,再次使⽤info命令,会发现已经没有这个数据库)OK
127.0.0.1:6379[1]> flushall    (--> 清除所有database)
OK
127.0.0.1:6379> dbsize          (--> 当前db的数量)
(integer) 0
127.0.0.1:6379> set a a
OK
127.0.0.1:6379> set b b
OK
127.0.0.1:6379> keys *
1) "a"
2) "b"
127.0.0.1:6379> dbsize
(integer) 2
127.0.0.1:6379> save            (--> ⼈⼯⼿动保存)
OK
127.0.0.1:6379> quit            (--> 退出当前redis客户端连接)
Redis 常⽤键命令演⽰+讲解
able@localhost:/Documents/Java/Tools/Redis/redis-2.8.0/src  $ ./redis-cli
127.0.0.1:6379> set test test  (--> 新增key)
OK
127.0.0.1:6379> keys *          (--> 查询)
1) "test"
2) "a"
3) "b"
127.0.0.1:6379> del test        (--> 删除键值)
(integer) 1(--> 1:表⽰成功)
127.0.0.1:6379> del xxx
(integer) 0(--> 0:表⽰失败)
127.0.0.1:6379> keys *          (--> 查询所有键值)
1) "a"
2) "b"
## ------------------------------邪恶分割线--------------------------------
## ------------------------------邪恶分割线--------------------------------
127.0.0.1:6379> exists a(--> 判断是否存在)
(integer) 1(--> 1:表⽰存在)
127.0.0.1:6379> exists m
(integer) 0(--> 0:表⽰不存在)
127.0.0.1:6379> ttl a(--> 查看这个key 的剩余⽣存时间,单位为秒 - time to live)(integer) -1(--> -1:负1表⽰这个key 是没有过期时间的)
127.0.0.1:6379> expire a10(设置key的过期时间/秒,单点登录session有效期可以使⽤)(integer) 1
127.0.0.1:6379> ttl a(--> 查看剩余⽣存时间,从上⾯设置成共就开始倒计时)(integer) 2(--> 剩余的⽣存时间 2秒)
......
127.0.0.1:6379> ttl a
(integer) -2(--> -2:负2表⽰这个key不存在)
## ------------------------------邪恶分割线--------------------------------
127.0.0.1:6379> type b          (--> type:查看key的类型)
string(--> 字符串)
127.0.0.1:6379> hset hash name tom  (--> 设置⼀个key为hash,hash=tom)(integer) 1(--> 1:表⽰成功)
127.0.0.1:6379> type hash      (--> 查看类型)
hash                            (--> 可以看到返回的是Hash)
127.0.0.1:6379> randomkey      (--> 随机⽣成key)
"hash"
127.0.0.1:6379> keys *
1) "hash"
2) "b"
127.0.0.1:6379> set a a(⽣成⼀个key,a=a)
OK
127.0.0.1:6379> set c c        (⽣成⼀个key,c=c)
OK
127.0.0.1:6379> keys *
1) "a"
2) "hash"
3) "b"
4) "c"
127.0.0.1:6379> rename a d      (--> 重命名)
OK
127.0.0.1:6379> keys *
1) "b"(--> 很明显已经重命名成功,a -> d)
2) "d"
3) "hash"
4) "c"
127.0.0.1:6379> get d          (--> 验证⼀下,获取看到 d = a,说明对的)
"a"
127.0.0.1:6379> set d d        (--> 将d的值设置为d,redis会直接覆盖不会校验是否已存在)OK
127.0.0.1:6379> get d          (--> 查看)
"d"
127.0.0.1:6379> rename b c      (--> 重命名b改为c,c因为这⾥key已经存在,会直接覆盖)OK                              (--> OK:表⽰成功)
127.0.0.1:6379> get c          (--> 查看)
"b"
127.0.0.1:6379> keys *
1) "d"
2) "hash"
3) "c"
127.0.0.1:6379> set a a
OK
127.0.0.1:6379> set b b
redis支持的数据结构
OK
127.0.0.1:6379> set c c
127.0.0.1:6379> set c c
OK
127.0.0.1:6379> set d d        (--> 将abcd重新赋值为与键值相同)
OK
127.0.0.1:6379> keys *
1) "b"
2) "a"
3) "d"
4) "hash"
5) "c"
127.0.0.1:6379> renamenx a b    (--> nx结尾的命令,⼀般都有逻辑判断,这⾥是重命名)
(integer) 0(--> 0:表⽰失败!从上⾯rename可以看到OK才表⽰成功)
Redis数据结构:String字符串
127.0.0.1:6379> flushall            (--> 学习开始直接清空)
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
127.0.0.1:6379> set a a
OK
127.0.0.1:6379> set b  b
OK
127.0.0.1:6379> setex c 100 c      (--> setex设置c键,并设置有效期100秒)
OK
127.0.0.1:6379> keys *
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> ttl c              (--> 查看这个key 的剩余⽣存时间,单位为秒)
(integer) 95
127.0.0.1:6379> psetex d 10000 d    (--> psetex设置d键,并设置有效期10000毫秒,注意单位!)
OK
127.0.0.1:6379> ttl d
(integer) 8
127.0.0.1:6379> ttl d
(integer) 4
127.0.0.1:6379> get xx              (--> 获取⼀个没有的键xx,会返回nil)
(nil)                              (--> 不存在)
127.0.0.1:6379> set word wordword
OK
127.0.0.1:6379> get word
"wordword"
127.0.0.1:6379> getrange word 02(--> 获取word键的 0~2个元素,注意是闭合区间)
"wor"
127.0.0.1:6379> getrange word 35
"dwo"
127.0.0.1:6379> get a(--> 获取a的键值)
"a"
127.0.0.1:6379> getset a aa        (--> getset:将a键的值设置为aa,并返回a键的原始值,这个命令很有⽤!!)"a"
127.0.0.1:6379> get a(--> 重新获取,验证⼀下)
"aa"
127.0.0.1:6379> mset a1 a1 b1 b1 c1 c1  (--> mset同时设置⼀个或多个键值)
OK
127.0.0.1:6379> keys *
1) "b1"
2) "a1"
3) "b"
4) "word"
5) "a"
6) "c1"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。