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

Redis学习笔记---数据类型一(string、list、hash)

2015-12-12 00:00 781 查看
摘要: 本系列redis博客纯属个人学习总结记录之用,初学者,如若见不当之处,望指教。本篇是redis的数据类型的介绍与使用

一、string

string字符串类型是字符串redis最基本的数据类型,可以存储任何形式的内容包括图片,string类型的可以存储的最大容量是1G。
命令:
① set key value/get key 创建键值对和获取

举例:set a 3/get a

② setnx key value 如果key已经存在则不会再添加

③ mset/mget 批量设置和获取

举例: mset b 2 c3 ... mget b c

④ incr/decr/incrby/decrby/incrbyfloat 对某个键值递增递减、按照步长递增和递减

举例:incr/decr a incrby/decrby a 2 incrbyfloat a 0.1

⑤append

举例:append name aaa 相当于字符串拼接

⑥strlen 获取字符串的长度

举例:strlen name

二、list

介绍:
list是一个有序的字符串列表,列表内部实现使用双向列表(linked list)实现的,list也可以作为一个队列进行使用
命令:
① lpush/rpush/lpop/rpop 左右插入 左右弹出

举例:lpush list 1 lpush 2 rpush 3 rpush 4 list中的值的顺序是:2134 也可以使用lpush list 5 2 3 4 添加多个值
pop是弹出,弹出后列表中的数据就没了,既是出栈操作
lpush和rpop组合起来就是一个先进先出的队列
②llen/lrange(-1表示最后一个元素的位置) llen是返回list列表的长度
lrange取出指定范围的数据,下标从0开始到llen-1 lrang 0 -1 表示取出list中所有的数据集合
③lrem(lrem key count value)count分为三种情况 删除
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
count = 0 : 移除表中所有与 value 相等的值。
④lindex(查询指定角标数据)

举例:lindex list 2 获取list中角标为2的元素

⑤lset(修改)

举例:lset list 2 6 将list角标为2的数据修改为6
⑥ltrim(截取)

举例:ltrim list 0 2 截取list列表,从角标0到2
⑦linsert(向指定元素前后插入元素)

举例:linsert list before/after 6 2在list列表的元素6前后插入一个数据2
⑧rpoplpush:将元素从一个列表转到另一个列表 rpopllist list list1 将list中的元素又边弹出一个从左侧插入到list1

三、hash

介绍:
hash类型存储了字段与字段值的映射,就是java中的map对象那样,hash的字段与字段值必须是字符串,不支持其他的数据类型,hash的键最多可以存储2的三十二次方减一的字段
hash适合存储的对象如下图:
对一个user对象可以存为键是user的与id的组合,字段是属性,字段值即属性值,redis中可以动态的增减字段与字段值,不会像关系型数据库那样造成数据的冗余
普通关系型数据库存储方式





redis存储方式
命令:
①hset/hget/hmset/hmget/hgetall(hsetnx)

举例:hset user:100 name zhangsan

hset user:100 age 20
hget user:100 name/age
hmset user:100 gender 0 birthday 1990-11-03
hmget user:100 gender birthday
hgetall顾名思义,hsetnx和string的setnx一样,如果字段存在则不插入
②hexists,判断键中的属性是否存在 hexists user:100 name
③hincrby(hash类型没有hincr命令) hincrby user:100 age 2
④hdel hdel user:100 gender
⑤hkeys/hvals hkeys/hvals user:100 获取键的所有字段/字段值
⑥hlen(获取键中包含多少个字段)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息