分布式内存数据库---Redis操作String、list、set、hash和Zset

Redis是一个Key-Value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

一、 Redis操作String(字符串)

Redis保存String称之为“单值单Value”,也就是说一个key只能保存一个值,常用的操作命令如下:

命令 描述
set/get/del/append/strlen 对String的基本操作
Incr/decr/incrby/decrby 每次递增1/每次递减1/按某个数每次递增/按某个数每次递减
getrange/setrange 对字符串操作(java中SubString)
setex键秒值/setnx set with expire和set if not exist
mset/mget/msetnx 批量操作
getset 先get再set

二、 Redis操作list(集合)

Redis保存List称之为“单值多value”。
常用操作命令:

命令 描述
lpush/rpush/lrange 保存list和获取list
lpop/rpop 从list中弹出一个值
lindex 按照索引下标获得元素(从上到下)
llen List长度
lrem key 删N个value
ltrim key 开始index 结束index,截取指定范围的值后再赋值给key
rpoplpush 源列表 目的列表 从一个list弹出再赋值给另一个list
lset key index value List指定位置设置值
linsert key before/after 值1 值2 在list的指定位置插入值

三、 Redis操作set

Redis保存set也是 “单值多value”,但是set的值不可重复。

命令 描述
sadd/smembers/sismember 保存set和获取set
scard 获取集合里面的元素个数
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)红包,抽奖多用
spop key 随机出栈
smove key1 key2 作用是将key1里的某个值赋给key2
数学集合类 差集:sdiff/交集:sinter/并集:sunion

四、 Redis操作Hash

Hash与Java中的Map对应,KV模式不变,但V是一个键值对。Hash是redis中的一个非常重要的数据类型。
常用操作命令:

命令 描述
hset/hget/hmset/hmget/hgetall/hdel 操作hash的基本命令
hlen Hash中的元素数量
hexists key 在key里面的某个值的key
hkeys/hvals 一个hash中所有的key和value
hincrby/hincrbyfloat 指定的值按某个值增长
hsetnx 不存在就设置

五、 Redis有序集合Zset(sorted set)

在set基础上,加一个score值。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2。
常用操作命令:

命令 描述
zadd/zrange 操作hash的基本命令
zrangebyscore key开始score 结束score 根据得分查询(不包含
zrem key 某score下对应的value值,作用是删除元素
zcard/zcount key score区间/zrank key values值, 作用是获得下标值/zscore key 对应值,获得分数
zrevrank key values值, 作用是逆序获得下标值
zrevrange 逆序获取值
zrevrangebyscore key 结束score 开始score 根据分数逆序排序

猜你喜欢

转载自blog.csdn.net/chenfengdejuanlian/article/details/54602201