[2] Redis数据类型与操作方式

一、Redis数据类型

Redis并不是简单的key-value键值对。redis还支持很多数据类型,key,string,list,set,sorted set,hash

String:redis最基本类型。一个key对应一个value。redis的string可以包含任何数据。比如jpg图片或者序列化的对象。一个Redis的字符串最多可以有512M。

hash:类似Java中的map。是一个string类型的field和value的映射表Map<String,Object>

list:底层实际是一个链表。左右都可以加入。键不存在,创建新的链表。键已存在,新增内容。值全部移除,对应的键也消失。从头、尾效率都极高。若对中间元素操作,很慢。

set:是String类型的无序集合。是通过hashtable实现的。

sorted set:有序集合。每一个元素都关联了一个double类型的分数。

二、操作数据

1.key

  • keys *:查看所有的key

  • set key value:加入key-value。已有则覆盖

  • exists key:是否存在key

  • move key number:将key移动到number数据库中

  • ttl:查看key还能在内存中活多久。-1永不过期,-2已过期

  • expire key second为给定的key设置过期时间second

  • del key:删除key

  • type key:查看数据类型

  • append key value:在key的数据中追加value

  • incr/decr key :+1/-1(只有数字才可以)

  • incrby/decrky key value :+value/-value

  • getrange key index1 index2:获取指定闭区间的值。k1:“1234556”。

    getrange k1 0 -1显示所有

    getrange k1 0 3 显示1234

  • setrange key index value:从第index开是替换为value。长度不变

  • setex key second value(set with expire):设置键加上时间

  • setnx key value(set if not exist):如果不存在,设置

  • mset key1 value1 key2 value2 key3 value3:设置多个值

  • msetnx key1 value1 key2 value2 key3 value3:设置多个值。只要有一个存在,所有都不能加入

  • mget key1 key2 key3:获得多个值

2.list

当值多value

  • lpush key value1 value2 value3:左加入list名为key,值为value1、value2、value3

  • rpush key value1 value2 value3:右加入list名为key,值为value1、value2、value3。

    怎么进入怎么出去

  • lrange key index1 index2:输出

  • lpop key:将key list左出栈

  • rpop key:将key list右出栈

  • lindex list index:在list中左index位置的值。index从0开始

  • rindex list index:在list中右index位置的值。index从0开始

  • llen key:list长度

  • lrem key N value 删N个value

  • ltrim key index1 index2 :将list中index1到index2的部分截取出来赋值给key

  • rpoplpush list1 list2:将list1底部的值左加入list2,只有一个

  • lset key index value:将list的index设置为value

  • linsert key before/after value1 value2:在list的value1值得前面/后面加入value2

3.set

不可以重复。跟list差不多

  • sadd key value1 value2 ...:加入一个set
  • smembers key:查看set的值
  • sismember key value:查看key中是否有value值
  • scard key:获取集合元素个数
  • srem key value:删除set中值为value的元素
  • srandmember set number:随机出number个整数
  • spop key:随机出栈
  • smove key1 key2 value:将key1中的value移动给key2
  • sdiff key1 key2:差集。在第一个set中,不在第二个set中
  • sinter key1 key2:交集。在第一个set中,并在第二个set中
  • sunion key1 key2:并集。在第一个set中,在第二个set中

4.hash

相当于Map<String,Map<String,Object>>

  • hset key key1 value1:为key中加入key1 value1键值对
  • hegt key key1:获取key中的id为key1的值
  • hmset key key1 value1 key2 value2:设置更多的值
  • hmget key key1 key2 key3:获取多个值
  • hgetall key:获取所有的值。输出key1
  • hdel key key1:删除key中的key1
  • hlen key:查看key的长度
  • hexists key key1:判断key中的key1是否存在
  • hkeys key:获取所有key
  • hvals key:获取所有value
  • hincrby key key1 number:为key1加number
  • hincrbyfloat key key1 float:为key1加float
  • hsetnx key key1 value:不存在就加入

5.zset(sorted set)

有序集合

  • zadd key key1 value1 key2 value2 key3 value3:加入有序key1
  • zrange key index index2:查询key中index 到 index2中的值
  • zrange key index index2 withscores:带分数的
  • zrangebyscore key score score2:分数在score到score2之间的值
  • zrangebyscore key score (score2:分数在score到score2之间的值,不包含score2
  • zrangebyscore key score score2 limit index length:分数在score到score2之间的值,分页
  • zrem zsetkey value:删除zsetkey中的值为value的元素
  • zcard zsetkey:统计个数
  • zcount zsetkey score1 score2:统计在score1到score2之间的分数个数
  • zrank zsetkey value:获取value值的索引
  • zscore zsetkey value:获取value值得score
  • zrevrank zsetkey value:逆序索引
  • zrevrange zsetkey index1 index2:获取逆序索引下的value值
  • zrevrangebyscore zsetkey index2 index1:逆序分数在index2到index1间的值。index2>index1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值