3. Redis-数据类型和指令

3.1 redis 系统管理相关指令

DBSIZE返回当前数据库 key 的数量
INFO返回当前 redis 服务器状态和一些统计信息
MONITOR实时监听并返回redis服务器接收到的所有请求信息
SHUTDOWN把数据同步保存到磁盘上,并关闭redis服务
CONFIG GETparameter 获取一个 redis 配置参数信息。(个别参数可能无法获取)
CONFIG SETparameter value 设置一个 redis 配置参数信息。(个别参数可能无法获取)
CONFIG RESETSTAT重置 INFO 命令的统计信息。(重置包括:Keyspace 命中数、Keyspace 错误数、 处理命令数,接收连接数、过期 key 数)
DEBUG OBJECTkey 获取一个 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 aaazset集合中,添加元素aaa,序号为1
zrange zset1 0 -1查看元素,用法参考lrange
zrange zset1 0 -1 withscores查看元素,带序号
zrem zset1 aaa在zset1删除aaa
zincrby zset1 10 dddzset1集合,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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值