3.1 redis 系统管理相关指令DBSIZE返回当前数据库 key 的数量INFO返回当前 redis 服务器状态和一些统计信息MONITOR实时监听并返回redis服务器接收到的所有请求信息SHUTDOWN把数据同步保存到磁盘上,并关闭re...
3.1 redis 系统管理相关指令
DBSIZE | 返回当前数据库 key 的数量 |
INFO | 返回当前 redis 服务器状态和一些统计信息 |
MONITOR | 实时监听并返回redis服务器接收到的所有请求信息 |
SHUTDOWN | 把数据同步保存到磁盘上,并关闭redis服务 |
CONFIG GET | parameter 获取一个 redis 配置参数信息。(个别参数可能无法获取) |
CONFIG SET | parameter value 设置一个 redis 配置参数信息。(个别参数可能无法获取) |
CONFIG RESETSTAT | 重置 INFO 命令的统计信息。(重置包括:Keyspace 命中数、Keyspace 错误数、 处理命令数,接收连接数、过期 key 数) |
DEBUG OBJECT | key 获取一个 key 的调试信息 |
DEBUG SEGFAULT | 制造一次服务器当机 |
FLUSHDB | 删除当前数据库中所有 key,此方法不会失败。小心慎用 |
FLUSHALL | 删除全部数据库中所有 key,此方法不会失败。小心慎用 |
3.2 redis 数据类型
3.2.1 String类型
set name aaa | 设置值 key name ,value aaa |
get name | 获取值 |
del name | 删除值 |
setnx name bbb | 设置值 key name ,value bbb,如果name这个键已经存在值,就不设置 |
setex color 10 red | 设置值 key color,value red,有效期十秒,10秒之后返回nil |
setrange name 2 bbb | 替换name的值,从下标为2开始替换成bbb |
mset k1 v1 k2 v2 k3 v3 | 设置多个值 k1=v1,k2=v2,k3=v3 |
mget name k1 k2 k3 | 同时获取多个值 |
getset name ccc | 获取就值,同时设置新值 |
incr age | 自增age + 1 |
incrby age 3 | 自增age + 3 |
decr age | 自减age - 1 |
decrby age 10 | 自减age - 10 |
strlen name | 获取字符串长度 |
append name aaa | 在name的值后面追加内容aaa |
演示:set name aaa,get name,del name,setnx name bbb,setex color 10 red
演示:setrange name 2 bbb
演示:mset k1 v1 k2 v2 k3 v3 , mget name k1 k2 k3
演示:getset name ccc
演示:incr age,incrby age 3
演示:decr age ,decrby age 10
演示:
3.2.2 Hash类型
Hash类型是String类型的 field 和value 的映射表,或者说一个String集合。他特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整一个对象。
hash 有点像 json 对象。下面用json格式展示
hset user id 1 | 设置hash user={id:1} |
hget user id |
获取 user.id 的值 |
hmset user id 2 name sen age 26 | 设置hash user={id:2, name:'sen', age:'26'} |
hmget user id name age | 获取值 user.id, user.name, user.age |
hsetnx user id 3 | 设置hash user={id:3},但是如果 user.id 有值就不赋值 |
hexists user id | 查看 key 是否存在,存在返回1 ,否则返回0 |
hlen user | 返回 key 的数量 |
hkeys user | 获取所有的key |
hvals user | 获取所有的value |
hgetall user | 获取所有的 key和value |
演示:hset user id 1,hget user id,hmset user id 2 name sen age 26,hmget user id name age
演示:hexists user id,hlen user,hkeys user,hvals user
演示:hgetall user
3.2.3 List 类型
List 类型是一个链表结构的集合,其主要功能有 push,pop,获取元素等。更详细的说,List类型是一个双端链表的结构。可以通过相关的操作进行集合头部或者尾部添加删除元素,list 的设计非常简单精巧,即可以作为栈,又可以作为队列。满足绝大的需求。
lpush list1 left1 | 在list1中头部插入元素“left1” |
rpush list1 right2 | 在list1中尾部插入元素“right1” |
lrange list1 0 -1 | 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 |
linsert list1 before right1 right0 | 在 list1中,在right1前插入right0 |
lset list1 2 center | 把下标为2的元素改成 center |
lrem list1 2 left2 | 删除第2在left2元素 |
ltrim list1 1 4 | 保留下标1到4的元素 |
lpop list1 | 从头部删除并返回元素 |
rpop list1 | 从尾部删除并返回元素 |
rpoplpush list1 list2 | 把list1尾部的元素加到list2的头部 |
lindex list1 1 | 获取 index 为1 的元素 |
llen list1 | 获取 list1 的长度 |
演示:lpush list1 left1,rpush list1 right2,lrange list1 0 -1
演示:linsert list1 before right1 right0,lset list1 2 center
演示:lrem list1 2 left2
演示:ltrim list1 1 4,lpop list1,rpop list1
演示:rpoplpush list1 list2,lindex list1 1,llen list1
3.2.4 Set 类型
sadd set1 aaa | 添加一个元素 |
srem set1 aaa | 删除元素 |
smembers set1 | 查看 set1 所有元素 |
spop | 随机删除一个元素smembers set1 |
sdiff set1 set2 | 返回两个集合不同的元素 |
sdiffstore set3 set1 set2 | 返回set1,set2集合不同的元素,放到set3中 |
sinter set1 set2 |
取set1,set2集合的交集 |
sinterstore set4 set1 set2 | 取set1,set2集合的交集,放入set4中 |
sunion set1 set2 | 取set1,set2集合的并集 |
sunionstore set5 set1 set2 | 取set1,set2集合的并集,放入set5中 |
smove set1 set2 bbb | 从set1把bbb移到set2中 |
scard set1 | 返回set1的元素个数 |
sismember set1 bbb | 判断bbb是不是set1中的元素 |
srandmember set1 | 随机返回一个元素,但是不会删除 |
演示:sadd set1 aaa,srem set1 aaa,smembers set1
演示:spop set1
演示:sdiff set1 set2
演示:sdiffstore set3 set1 set2
演示:sinter set1 set2,sinterstore set4 set1 set2
演示:sunion set1 set2,sunionstore set5 set1 set2
演示:smove set1 set2 bbb,scard set1,sismember set1 bbb,srandmember set1
3.2.5 ZSet 类型
zadd zset1 1 aaa | zset集合中,添加元素aaa,序号为1 |
zrange zset1 0 -1 | 查看元素,用法参考lrange |
zrange zset1 0 -1 withscores | 查看元素,带序号 |
zrem zset1 aaa | 在zset1删除aaa |
zincrby zset1 10 ddd | zset1集合,ddd元素序号+10 |
zrangebyscore zset1 1 15 | 取出zset1集合中序号为1-15的元素 |
zcard zset1 | 元素个数 |
zount zset1 1 5 | 序号为1-5之间的元素个数 |
zremrangebyscore zset1 5 10 | 删除序号5-10之间的元素 |
zremrangebyrank zset1 0 5 | 删除索引0-5之间的元素 |
演示:zadd zset1 1 aaa,zrange zset1 0 -1,zrange zset1 0 -1 withscores,zrem zset1 aaa
演示:zincrby zset1 10 ddd,zrangebyscore zset1 1 15
演示:zremrangebyscore zset1 5 10
3.3 redis 其他常用命令
keys *:返回所有满足的 keys * (可以模糊匹配)
exists:判断某个key是否存在
expire:设置某个key的过期时间,使用ttl查看剩余时间。
persist:取消过期时间
select:选择数据库 数据库为0-15,默认进入的是0。
move:将当前数据库的key转移到指定的数据库中。
randomkey:随机返回数据库里的一个key
rename:重命名key
本文标题为:3. Redis-数据类型和指令
基础教程推荐
- Mysql主从三种复制模式(异步复制,半同步复制,组复 2022-09-01
- Redis如何实现延迟队列 2023-07-13
- 关于MySQL中explain工具的使用 2023-07-27
- 如何将excel表格数据导入postgresql数据库 2023-07-20
- python中pandas库的iloc函数用法解析 2023-07-28
- Python常见库matplotlib学习笔记之多个子图绘图 2023-07-27
- SQLServer 清理日志的实现 2023-07-29
- Mysql查询所有表和字段信息的方法 2023-07-26
- 【Redis】数据持久化 2023-09-12
- Sql Server Management Studio连接Mysql的实现步骤 2023-07-29