Redis常用数据类型及其相关操作

上一篇文章主要介绍了一下Redis的以及它的安装。如果大家看的比较仔细的话,应该记得上一篇我有说过的Redis相比内存缓存而言,它所支持的数据类型更多。主要有字符串(字符串),列表(链表),(集合),有序集合(有序集合),散列(哈希/字典)这五种类型,当然还有其他的数据类型,比如发布/订阅(订阅) ,交易(事务)等等,只不过我们平时用的相对比较多的,也就是比较常用的还是前五种数据类型,那么接下来我就说说前面五种数据类型的相关操作。

 

 

串:

是二进制安全的,可以存储任何长度为512M的字符串,并且可以包含任何数据,比如JPG图片或序列化对象

set key value:设置key的值为value,如果key之前已经存在,则用值替代原来的值

获取密钥:获取密钥的值

getset key newvalue:结果是获取key的旧值,但是此时key已被赋予了新的值(newvalue)

mset key1 value1 key2 value2:设置多个键,这里key1的值为value1,key2的值为value2

mget key1 key2:获取多个键的值,结果为value1,value2

strlen key:结果为key的值的长度

setex key time value:表示设置key的值为value,有效期时间是时间秒,也就是说,过了这个时间key就变成空了

incr key:使键自增,也就是键的值+1 ;如果原来没有这个键,那么这个键的值现在就是1,如果原来有键,但不是int,比如原来键的值是“c ++”,那么做这个操作就会报错

incrby key increment:使键的值+增量,例如如果原来键的值是10,执行了incrby key 100,那么键的值就变成110;如果原来没有这个键,那么这个键的值现在就是增量,同样如果键原来不是INT,那也会报错

decr key:使得键自减,也就是key的值-1 ;,如果原来没有则为-1,如果原来有,但不是int也会报错

decrby key decrement :(就不说了,跟上面对比微笑

setrange key offset value:表示值从下标为offset的地方开始替代,例如:如果key原来的值为aaaa,那么执行setrange key 0 bb后,key的值变为bbaa

 

 

 

列表(下标从0开始):

是一个双端链表,它既可以作为栈,也可以作为队列

lpush key value1 value2 ....:把值插入到链表的头部,lpush key 1 2 3(结果为3,2,1)

rpush key value1 value2 ....:把值插入到链表的尾部,rpush key 1 2 3(结果为1,2,3)

lpop key:返回并删除链表头部元素

rpop key:返回并删除链表尾部元素

llen key:返回链表的个数

lindex key index:返回链表下标为index的值

lrange key start stop:返回链表下标从start到stop的值(以start为准),如果start大于链表的长度+1,则结果为空。例如:如果key为1,2,3;那么lrange key 3 4的值就是空

lrem key count value:删除链表中为value的值,删除的个数为绝对值count;这里分三种情况:count = 0全部删除,count> 0从表头删除,count <0从表尾删除

 

 

 

组:

是无序,值唯一的字符串类型的元素的集合

sadd key value1 value2 value3 ...:往集合里面添加元素,如果值重复,只取一个,sadd key 1 2 2 3,结果为1,2,3

smembers key:获取集合里面所有的元素

scard key:返回集合总的个数

serm key value:删除集合值为value的值

spop key:删除集合中的随机的一个数

sinter key1 key2:求key1,key2的交集

sunion key1 key2:求key1,key2的并集

sdiff key1 key2:求key1,key2的差集,例如:key1的值为1 2 3,key2的值为2 4,那么交集就是1 3

 

 

 

Sorted Set(根据得分(权重)来进行排序的,默认是升序,名次从0开始):

是有序,值唯一的string类型的元素的集合(是list跟hash结合产生)

zadd key score value:添加元素,得分可以重复,例如zadd key 0 1,zadd key 1 2,zadd key 0 3;结果是1 3 2

zrange key start stop(WITHSCORES):打印名次在[start,stop]的元素,如果加上WITHSCORES就会把值对应的得分打印出来,最好是加上WITHSCORES,这样看的更仔细

zrank key member:查询成员这个元素的名次(升序)

zrevrank key member:查询成员这个元素的名次(倒序)

zrem key value:删除值为value的元素

zremrangebyscore key min max:根据得分来删除元素,得分的范围在[min,max]之间

zremrangerbyrank key start end:根据排名来删除元素,排名的范围在[start,end]之间

zcrad key:返回集合中元素的个数

 

 

 

哈希表:

是一个字符串类型的字段跟字符串类型的值之间的映射

hset key field value:设置key的字段的值为值(重复设置,新值会取代旧值),例如hset key name hongdingyi,那么key里面的名称的值就是hongdingyi

hmset key field1 value1 field2 value2:设置多个字段

hget key field:获取键里面字段field的值,例如hget key name,result果就是hongdingyi

hmget key field1 field2:获取多个字段值

hexists key field:检测字段这个字段是否存在

hlen key:查看键里面有多少个字段

hdel key field:删除键里面指定的字段

hkeys键:返回键里面所有的字段

hvals键:返回键里面所有的值

hgetall key:将关键里面的已跟踪值全部显示出来

 

 

以上就是Redis的五种常用数据类型的基本操作,再补下面几个其他常用命令

type key:检查key的类型

del key:删除键

重命名key newkey:更改名字

平:用于测试客户端是否成功连接服务器,返回PONG代表成功

退出:退出连接

dbsize:查看当前数据库总共有多少个键

fflushdb:删除当前数据库所有的关键

保存:保存RDB快照

 

 

哦了,到这里,这篇文章就结束了,了解更多操作,更多细节,请点击Redis的帮助中文English文档Redis的英文帮助文档

 

 

 

下一篇将讲述客户端如何通过API操作Redis的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值