Redis学习之数据的客户端命令操作

Redis支持的数据类型:字符串 (Strings)、哈希 / 散列 (Hashes)、列表 (Lists)、集合 (Sets/Sorted sets)、位图 (Bitmaps) 和超重对数 (HyperLogLogs)。

一、字符串 (Strings)

        字符串是 Redis 最基本的数据类型。Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串可以包含任意类型的数据,例如一张 JPEG 图像,或者一个序列化的 Ruby 对象。一个字符串最大为 512M 字节。

设置值:set keyName keyValue (set同一个key的效果是覆盖掉之前的value)
取  值:get keyName
删除值:del keyName

setnx keyName:如果keyName不存在则设置值,否则不进行设置并且返回0
setex keyName time(x/seconds) keyvalue:设置有效时间为time秒的keyName及其keyValue
setrange keyName index str:将已存在的keyName的值的第index位后面的值替换成str

mset key1 value1 key2 value2 ... keyN valueN:批量设置
mget key1 key2 ... keyN:批量获取值

incr/decr:递增或递减
incrby/decrby:进行制定长度的递增或递减
append keyName:字符串追加
strlen keyName:获取字符串长度

二、哈希 / 散列 (Hashes)

        哈希是字符串字段 (field) 与字符串值之间的映射,所以是表示对象的理想数据类型(每个哈希可以存储多达 223-1 个字段值对),拥有少量字段 (少量指的是大约 100) 的哈希会以占用很少存储空间的方式存储,所以你可以在一个很小的 Redis 实例里存储数百万的对象。

设置值:hset hashName hashField hashValue
取  值:hget hashName hashField 
批量存:hmset hashName hashField1 hashValue1 hashField2 hashValue2 ... hashFieldN hashValueN
批量取:hmget hashName hashField1 hashField2 ... hashFieldN

hsetnx
hincrby/hdecrby
hexists:检测是否存在key,存在返回,否则返回0
hlen:返回hash集合的所有键数值
hdel:删除指定hash的field
hkeys:返回hash里的所有key
hvals:返回hash里的所有Value
hgetall:返回hash里的所有key和value

三、列表 (Lists)

        列表仅仅是按照插入顺序排序的字符串列表。可以添加一个元素到 Redis 列表的头部 (左边) 或者尾部 (右边)。类似于一个双端链表结构,所以也可以将List当成一个栈或者队列。

类似于栈(先进后出)的一面:
lpush:lpush stackName elememt1 stackName element2 ... (从头部加入元素)

类似于队列(先进先出)的一面:
rpush:rpush queueName element1 queueName element2 ... (从尾部加入元素)

lrange:lrange listName 0 -1 (取数据,从头取到末尾)
        lrange listName start stop (取数据,从start取到stop)

linsert:linsert listName before|after pointElement insertElement(插入元素)

lset:替换指定元素
lrem:lrem mystackName count "key1" 从前往后依次删除count个指定元素(key1),返回被删除元素个数(List的去重?)
ltrim:ltrim kry start stop 保留指定范围的元素

lpop/rpop:从左/右开始删除元素 并返回被删除元素

rpoplpush:从尾部删除元素之后再从头部加入元素
index:获取index位置的元素
llen:获取元素个数

四、集合 (Sets/Sorted sets)

1、Sets:没有顺序的字符串集合 (collection)。

· 可以在 O(1) 的时间复杂度添加、删除和测试元素存在与否 (不管集合中有多少元素都是常量时间)。
· 具有不允许重复成员的性质。多次加入同一个元素到集合也只会有一个拷贝在其中(意味着加入一个元素到集合中并不需要检查元素是否已存在)。
· 可以在很短的时间内和已经存在的集合一起计算并集,交集和差集。

2、Sorted sets:有序集合,和 集合类似,是非重复字符串集合 (collection)。每一个有序集合的成员都有一个关联的分数 (score),用于按照分数高低排序。尽管成员是唯一的,但是分数是可以重复的。可以很快速的添加,删除和更新元素 (在和元素数量的对数成正比的时间内)。由于元素是有序的而无需事后排序,你可以通过分数或者排名 (位置) 很快地来获取一个范围内的元素。访问有序集合的中间元素也是很快的。

sadd:添加元素
srem:删除元素
spop:随机返回删除的key

sdiff:返回两个集合中不同的元素(一前面的集合为标准)
sdiffstore:将set1和set2中不同的元素存储到set3中

sinter:取交集
sinterstore:取交集并存储到set3中

sunion:取并集
sunion:取并集并存储到set3中

smove:将set1中的元素移到set2中
scard:获取集合的元素个数
sismember:sismember set element:判断元素element是否属于集合set
srandmember:随机返回一个元素

zadd:zadd zset 2 two 向有序集合zset集合添加元素two(安排在第二位),若元素存在则更新顺序(依次往后移动)
zrange:zrange zset start stop 查看zset集合里边的数据
zrangebyscore:找到指定区间范围的数据进行访问
zremrangebyscore:删除指定序号

zrank:返回排序索引(升序排序之后再找索引)
zrevrank:返回排序索引(降序之后再找索引)
zrangebyscore:zrangebyscore zsetName start stop withscores(找到指定区间范围的数据进行返回)

zcard:返回集合里所有元素的个数
zcount:zcount zsetName start stop(返回集合中score在给定区间中的数量)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值