您的位置:首页 > 数据库 > Redis

Redis数据类型的常见操作

2018-03-06 15:35 225 查看
 Redis数据类型

①String(字符串) 
②Hash(哈希,类似java里的map)
    是一个String类型的field和value的映射表
③List(列表)
    Redis内实际是一个linkedlist 前后可以插入
④Set(集合)
   String类型的无序集合,它是通过hashtable实现的
⑤Zset(sorted set:有序集合)
   是String类型的元素集合,每个元素关联一个double类型的分数,Zset成员是唯一的,但是分数可以重复

(1)  Redis键(key)
keys *
exists key 判断某个key是否存在
move key db  移动当前库到其他db , move key3 2
expire key 秒钟  为key设定过期时间 expire k2 10
ttl key 查看key还有多久过期 -1永不过期 -2表示已过期
type key 查看你的key是什么类型

(2)Redis 字符串(String)单值单value
set/get/del/append/strlen  append追加 strlen长度
incr/decr/incrby/decrby 一定要是数字才能进行加减  (incr/decr 增减1)(incrby/decrby 增减多个 incrby k2  2)
getrange/setrange  
getrange 获取指定区间范围内的值,类似between and (从 0 到 -1 表示全部 ) set key5 abcde       getrange key5 0 2 ——》abc
setrange 设置指定区间范围内的值  格式是 setrange key5  4
sete
ac59
x(set with expire) setex k4 10 v4  设置key4的值是v4 过期时间10秒
setnx(set if not exist)  setnx k1 v11  如果key1不存在 设值
mset/mget/msetnx(设置多个值) 
mset k1 v1 k2 v2 k3 v3  
mget k1 k2 k3
msetnx 多个如果不存在 msetnx k3 v3 k4 v4 都不成功

(3)Redis列表(List)单值多value (rpush顺序正常)
lpush/rpush/lrange 
lpush list1 1 2 3 4 5 从左插入 lrange 0 -1 得到 5 4 3 2 1
rpush list2 1 2 3 4 5 从右插入  得到 1 2 3 4 5

lpop/rpop 
lpop list1 得到 5  rpop list1  得到1 lrange list1 0 -1 得到 4 3 2

lindex 按照索引下标获得元素 从上到下 lindex list 3 0
llen长度 llen list1 得到3
lrem key 删N个value 
ltrim key 开始index 结束index  截取得到的值后在赋值给当前key
rpoplpush list1 list2 右侧出栈 左侧进栈
lset key index value 对下标的值的内容进行赋值
linsert key before/after 值1  值2

总结
字符串链表,左右都可以插入
如果键不存在 创建新的链表
如果已存在 新增内容
如果值全移除 键消失
链表头尾操作效率极高,中间操作效率低

(4)Redis集合 set 单值多value
①sadd(向集合中添加元素,重复不计入) / smembers(列出集合中的所有元素)/ SISMEMBER key member(判断 member 元素是否集合 key 的成员)
②scard 获取集合里面元素的个数
③srem key value 删除集合中的元素
④srandmember key N (随机出N个数)
⑤spop key [count] 随机移除集合中的元素
⑥smove key1 key2 在key1里某个值 作用是将key1里的某个值赋值给key2
⑦数学集合类 
sdiff 差集  sdiff set01 set02
sinter 交集
sunion 并集 

(5)Redis哈希(hash)KV 模式模式不变 但V是一个键值对(pojo类型 )
*hset/hget/hmset(many)/hmget/hgetall/hdel  
hset user name z3 ---->hget user name (z3)
hlen
hexists key 在key里面的某个值得key
*hkeys/hvals hkeys user (得到所有的key)
hincrby/hincrbyfloat
hsetnx(不存在 set)

(6)Redis集合Zset(sorted set)
在set基础上,加一个score值,之前set是key1 v1 v2 v3 现在 zset是key1 score1 v1 score2 v2 (key是一个 value2个是一个整体即 score value)
①zadd/zrange (zadd zset1 10 v1 20 v2) 
        ZRANGE salary 0 -1 WITHSCORES             # 显示整个有序集成员
ZRANGE salary 1 2 WITHSCORES              # 显示有序集下标区间 1 至 2 的成员
②zrangebyscore key 开始score 结束score ( 不包含 
③zrem key NScore 删除元素
④zcard/zcount key score 区间 
⑤zrank key values值 作用是取得下标值 
⑥zscore key value 获得score
⑦zrevrank key values值 ,逆序获得下标值
⑧zrevrange 开始分数到结束分数
⑨zrevrangebyscore by score
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: