Redis常用数据结构和操作
Apr 10, 2017
Redis常用的数据结构有5种 String Hash List Set SortSet
String
- Set name fitz 设置name = fitz 存储
- Get name 获取设置好的name的值
- Setnx name fitz 设置name键值为fitz 如果存在,则返回0 不存在返回1
- Mset name fitz age 23 salary 233333 设置多个键值对 一块存错 全成功,全失败
- Msetnx name fitz age 23 hoby basketball 如果设置多个键值对中有存在返回失败
- Mget name age salary 获取多个键的值
- Getset name fitz 获取name的值,并设置新的值为fitz
- Setrange name 3 fitz 将键name 3字符和面的进行替换 结果为luofitz
- Getrange name 3 6 获取键name的值 结果为luofitz
- Append name .com 给键nane追加.com 结果为fitz.com
- Incr age 设置每个值自增 返回结果为24
- Incrby age 6 给name加上6 如果是负数则键
- Decr 与incr相反
- Decrby 与decrby相反
- Strlen 返回键对应的值得字符长度
Hash
- Hset user:001 name fitz 设置哈表名字user 表里面的001 的name 设置为 fitz
- Hsetnx user name maomao 设置哈希表名字中的name 存在,设置不成功
- Hget user:001 name 获取hash表的user的001的值
- Hmset user:003 name maomao age 23 批量设置
- Hmget user:003 name age 批量获取user:003的值
- Hincrby user:003 age 3 给hash表的age值加上3
- Hexists user:003 name 判断hash表中式否存在name的键
- Hlen user:003 返回hash表的所有的字段的数目
- Hkeys user:003 返回hash表的所有字段
- Hvals user:003 返回hash表中所有的值
- Hgetall user:003 返回所有的字段和值
- Hdel user:003 name 对hash的name的值和键删除
List
栈:先进后出 队列:先进先出
- lpush 从头压入
- Lpush list1 “world”
- lpush list1 ‘hello”
- Lrange list1 0 -1 把链表中的数据从0到尾全部取出
- rpush 从尾部压入
- rpush list2 “world”
- rpush list2 “luowen”
- lrange list2 0 -1
- linsert 插入出入数据
- Linsert list3 before maomao love
- Lrange list3 0 -1
- Linsert list3 after luowen love
- Lrange list3 0 -1
- lset 给某个元素赋值
- Lset list5 0 “deom”
- lrem 删除list表中的数据
- Lrem list6 1 “luowen”
- ltrim 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
LTRIM KEY_NAME START STOP
- lpop 从链表的头部弹出一个元素
LLEN KEY_NAME
- rpop 从链表的尾部弹出一个元素
LLEN KEY_NAME
- rpoplpush 从一个链表弹出,在从头部压入到另一个链表
RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME
- lindex 返回一个list小标的索引值
- llen 返回这个链表的元素的长度
set
- sadd 向集合中插入一条数据
- srem 删除集合中的一个元素
- smembers 查看集合中的元素
- spop 从集合随机弹出一个元素,返回键值
- sdiff 两个集合的差集 返回两个集合不一样的,根据第一个集合为标准
- sdiffstroe 将两个差集存储到另外一个集合
- sinter 将两个集合的交集
- sinterstore 将两个集合的交集存储到另外一个集合中
- sunion 将两个集合并集
- sunionstore 将两个集合并集并存储到另外一个集合中
- smove 将以个集合中的元素移动到另外一个集合中
- scard 查看集合中元素的个数
- sismember 判断是否是集合中的元素
- srandmember myset14 随机取出myset1 中的元素
SortSet
- zadd 添加到有序集合中区
- zrem 删除有序集合中的元素
- zincrby myzsent luowen1 3将myzsent luown1的序号更改为4 如果没有,就创建他
- zrank 找到myzsent 对应值得索引
- zrevrank 反过来去索引
- zrangebyscore 返回集合中指定的元素
- zcount 返回指定空间的数量
- zcard 返回集合中所有元素的个数
- zremrangbyrank 删除集合中指定区间的元素,并将索引进行排序
- zremrangbyscore 删除集合中指定元素,按循序进行排序
- sadd 向集合中插入一条数据