前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis系列基础篇之常用命

redis系列基础篇之常用命

作者头像
用户4361942
发布2019-05-24 17:03:25
6660
发布2019-05-24 17:03:25
举报
文章被收录于专栏:java程序员思维

目录

1、字符串类型常用命令

2、list类型常用命令

3、集合类型常用命令

4、有序集合类型常用命令

5、hash类型常用命令

6、工作中常用命令

1、字符串类型常用命令

代码语言:javascript
复制
设置缓存set key value
获取缓存get key
代码语言:javascript
复制
删除keydel key
代码语言:javascript
复制
查询key过期时间 -1 永远不过期ttl key设置过期时间expire key 过期秒数
代码语言:javascript
复制
自增命令incr key
递减命令decr key
代码语言:javascript
复制
指定数量增加incrby key 数量指定数量递减decrby key 数量

2、list类型常用命令

代码语言:javascript
复制
将一个或多个值插入到列表头部lpush key values
移除列表的最后一个元素,返回值为移除的元素。rpop key
获取list长度llen key
队列实现

栈实现

3、集合类型常用命令

代码语言:javascript
复制
set中添加元素sadd key values
获取集合中的成员数scard key
获取集合中所有成员smembers key
移除集合中的指定成员srem key member1[member2]
随机移除其中的成员spop key

注意:从上图可以看出,set是一个无需集合

4、有序集合类型常用命令

代码语言:javascript
复制
有序集合添加成员zadd key score1 member1 [score2 member2]
获取集合中的成员数zcard key
获取成员的索引zrank key member
移除集合中的指定成员zrem key member1[member2]
获取区间的成员zrange key start end
返回member分数zscore key member

5、hash类型常用命令

代码语言:javascript
复制
批量map添加元素hmset key field value[field2 value2]
添加元素hset key field value
获取元素hget key field 
批量获取元素hmget key field[field2]
获取单个元素hget key field
获取所有的元素hgetall key
删除keyhdel key field
获取hash中所有的keyhkeys key

6、工作中常用命令

获取所有的key keys 通配符*

注意:不要在key很多的服务器中执行此命令,因为redis是单线程,如果key很多,会造成redis阻塞,影响服务性能。

获取redis的详细信息 info

代码语言:javascript
复制
server : 一般 Redis 服务器信息,包含以下域:redis_version : Redis 服务器版本redis_git_sha1 : Git SHA1redis_git_dirty : Git dirty flagos : Redis 服务器的宿主操作系统arch_bits : 架构(32 或 64 位)multiplexing_api : Redis 所使用的事件处理机制gcc_version : 编译 Redis 时所使用的 GCC 版本process_id : 服务器进程的 PIDrun_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)tcp_port : TCP/IP 监听端口uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数uptime_in_days : 自 Redis 服务器启动以来,经过的天数lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理clients : 已连接客户端信息,包含以下域:connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)client_longest_output_list : 当前连接的客户端当中,最长的输出列表client_longest_input_buf : 当前连接的客户端当中,最大输入缓存blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
memory : 内存信息,包含以下域:used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。used_memory_peak : Redis 的内存消耗峰值(以字节为单位)used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。查看 used_memory_peak 的值可以验证这种情况是否发生。
persistence : RDB 和 AOF 的相关信息stats : 一般统计信息replication : 主/从复制信息cpu : CPU 计算量统计信息commandstats : Redis 命令统计信息cluster : Redis 集群信息keyspace : 数据库相关的统计信息
代码语言:javascript
复制
# Serverredis_version:2.6.14redis_git_sha1:00000000redis_git_dirty:0redis_mode:standaloneos:Linux 3.10.0-862.9.1.el7.x86_64 x86_64arch_bits:64multiplexing_api:epollgcc_version:4.8.5process_id:7115run_id:3792063e1c3d74529341886ee5ceaf09f517bc17tcp_port:6380uptime_in_seconds:5263uptime_in_days:0hz:10lru_clock:573953
# Clientsconnected_clients:1client_longest_output_list:0client_biggest_input_buf:0blocked_clients:0
# Memoryused_memory:2933360used_memory_human:2.80Mused_memory_rss:9662464used_memory_peak:2933224used_memory_peak_human:2.80Mused_memory_lua:31744mem_fragmentation_ratio:3.29mem_allocator:jemalloc-3.2.0
# Persistenceloading:0rdb_changes_since_last_save:48rdb_bgsave_in_progress:0rdb_last_save_time:1557626749rdb_last_bgsave_status:okrdb_last_bgsave_time_sec:-1rdb_current_bgsave_time_sec:-1aof_enabled:1aof_rewrite_in_progress:0aof_rewrite_scheduled:0aof_last_rewrite_time_sec:-1aof_current_rewrite_time_sec:-1aof_last_bgrewrite_status:okaof_current_size:1438aof_base_size:56aof_pending_rewrite:0aof_buffer_length:0aof_rewrite_buffer_length:0aof_pending_bio_fsync:0aof_delayed_fsync:0
# Statstotal_connections_received:13total_commands_processed:107instantaneous_ops_per_sec:0rejected_connections:0expired_keys:2evicted_keys:0keyspace_hits:30keyspace_misses:9pubsub_channels:0pubsub_patterns:0latest_fork_usec:0
# Replicationrole:masterconnected_slaves:0
# CPUused_cpu_sys:0.84used_cpu_user:0.56used_cpu_sys_children:0.00used_cpu_user_children:0.00
# Keyspacedb0:keys=5,expires=0

注意:redis出现异常情况的时候,会使用此命令查看redis的情况,去看内存使用情况等信息

批量删除key,使用通配符方式

redis-cli -h ip地址 KEYS "key*" | xargs redis-cli -h ip地址 DEL

当redis内存使用很大的时候,需要查找占用内存空间比较大的key

redis-cli -p 6380 --bigkeys -i 0.1

注意:查找大key是一个比较耗时的命令,记得使用-i 参数设置睡眠时间,降低服务器的负载。

命令是基础,学会常用命令,将其应用到适合的场景。这里只是罗列了一些工作中常用的命令,更多的命令到redis官网查看。

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java程序员思维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档