首页 / 技术 / 正文

Redis的5种数据结构及常用命令

2016年01月07日 1 条评论 ... 技术

Redis 是一种高级的 key:value 储存系统,value 的支持5钟数据类型,分别是:

    1. string 字符串
    2. lists 字符串列表
    3. sets 字符串集合
    4. sorted sets 有序字符串集合
    5. hashes 哈希值

这5中数据结构,分别有以下特性和常用操作命令

1.string 字符串

Redis 的字符串存储是用二进制方式存储的,因此可以存放超文本类型的文件,比如图片音乐等。

Redis 的字符串操作可以将字符串直接转化为数值,无需手动转换。

常用命令

①读存字符串

127.0.0.1:6379> SET mystring "HelloWorld" //存“HelloWorld”到 mystring 中
OK
127.0.0.1:6379> GET mystring //读取 mystring
"HelloWorld"

②对数字递增递减操作

127.0.0.1:6379> SET num 100
OK
127.0.0.1:6379> INCR num  //加1操作
(integer) 101
127.0.0.1:6379> DECR num  //减1操作
(integer) 100
127.0.0.1:6379> INCRBY num 10  //加操作,10代表+10
(integer) 110
127.0.0.1:6379> DECRBY num 10 //减操作,10代表-10
(integer) 100

2.lists 字符串列表

字符串列表 list 是用链表的形式存储的,链表是指存储位置随机,但是每个链表单元的头部有上单元的存储位置,尾部有下一单元的存储位置,将这些位置链接起来就变成了链表,链表的好处是存储速度快,缺点是定位时间慢。

常用操作

LPUSH key value [value…] 左侧插入元素

RPUSH key value [value…] 右侧插入元素

LRANGE key start stop 查询制定范围元素

127.0.0.1:6379> LPUSH ilist "1"
(integer) 1
127.0.0.1:6379> RPUSH ilist "2"
(integer) 2
127.0.0.1:6379> LPUSH ilist "3"
(integer) 3
127.0.0.1:6379> LRANGE ilist 0 1  //查询从0到1的元素
1) "3"
2) "1"
127.0.0.1:6379> LRANGE ilist 0 –1 //查询从0到末尾的元素
1) "3"
2) "1"
3) "2"

3.sets 集合

无序集合,指令以S开头。

常用操作

SADD key number [number …]增加新元素

SMEMBERS key 列出所有元素

SISMEMBER key number 判断元素是否存在,存在返回1,不存在返回0

SUNION key [key …] 取两个集合的并集

4.sorted sets 有序集合

有序集合,每个元素都关联有序号(SCORES),可以以此排序。命令以Z开头。

常用操作

ZADD key score member [[score member] [score member] ...] 增加元素

ZRANGE key start stop [WITHSCORES] 列出元素

127.0.0.1:6379> ZADD zlist 1 "A"
(integer) 1
127.0.0.1:6379> ZADD zlist 2 "B"
(integer) 1
127.0.0.1:6379> ZADD zlist 3 "C"
(integer) 1
127.0.0.1:6379> ZRANGE zlist 0 –1  //查询0元素到最后的所有元素
1) "A"
2) "B"
3) "C"
127.0.0.1:6379> ZRANGE zlist 0 -1 WITHSCORES //根据序列查询
1) "A"
2) "1"
3) "B"
4) "2"
5) "C"
6) "3"

5.hashes 哈希值

哈希值是字符串与字符串之间的映射,比如个人信息,“姓名”和“小明”两个字符串映射,“性别”和“男”两个字符串映射。

常用命令

HMSET key field value [field value ...] 同时将多个 field-value (域-值)对设置到哈希表 key 中

HGETALL key 返回哈希表 key 中,所有的域和值

HSET key field value 修改 key 对应的某值

127.0.0.1:6379> HMSET user name xiaoming sex male age 23
OK
127.0.0.1:6379> HGETALL user
1) "name"
2) "xiaoming"
3) "sex"
4) "male"
5) "age"
6) "23"
127.0.0.1:6379> HSET user age 18 //修改了age为18
(integer) 0
127.0.0.1:6379> HGETALL user
1) "name"
2) "xiaoming"
3) "sex"
4) "male"
5) "age"
6) "18"

1 条评论

Loading...
  1. name

    大神。。求现在的主题- – 或者能不能加你一下。。有些问题求解

    2016-01-11 [回复]

发布评论