Redis第 4讲:Redis的数据结构

94 阅读4分钟

一、Redis数据类型介绍 1.1、五种数据类型:

字符串(String)
字符串列表(list)
有序字符串集合(sorted set)
哈希(hash)
字符串集合(set

1.2、Key定义的注意点

不要过长,
不要过短,
统一的命名规范

二、Redis数据结构之字符串类型

二进制安全的,存入和获取的数据相同,Value最多可以容纳的数据长度是512M 2.1、存储String常用命令

赋值
取值
删除
数值增减
扩展命令

[root@localhost redis]# ./bin/redis-cli 2.1.1、赋值

127.0.0.1:6379> set name java1234

OK 2.1.2、取值

127.0.0.1:6379> get name

"java1234" 2.1.3、获取并设置值

127.0.0.1:6379> getset name open1111

"java1234"

127.0.0.1:6379> get name

"open1111" 2.1.4、删除

127.0.0.1:6379> del name

(integer) 1

127.0.0.1:6379> get name

(nil) 2.1.5、incr 自增

假如没有定义 则默认0,假如非数值类型 则报错

127.0.0.1:6379> incr n

(integer) 1

127.0.0.1:6379> get n

"1"

127.0.0.1:6379> set nn 2

OK

127.0.0.1:6379> incr nn

(integer) 3

127.0.0.1:6379> get nn

"3"

127.0.0.1:6379>

127.0.0.1:6379> set n2 java1234

OK

127.0.0.1:6379> incr n2

(error) ERR value is not an integer or out of range

127.0.0.1:6379> 2.1.6、自减 decr 同上

127.0.0.1:6379> decr nn

(integer) 2

127.0.0.1:6379> decr n3

(integer) -1 2.1.7、扩展

incrby 指定增量值

127.0.0.1:6379> incrby n3 8

(integer) 7

2.1.8、decrby 指定减量值

127.0.0.1:6379> decrby n3 5

(integer) 2

2.1.9、append 追加字符串

假如没定义 直接赋值

127.0.0.1:6379> append s1 jj

(integer) 2

127.0.0.1:6379> get s1

"jj"

127.0.0.1:6379> append s1 bb

(integer) 4

127.0.0.1:6379> get s1

"jjbb"

Del n1 n2 删除多个的命令 三、Redis数据结构之哈希类型

String key和String Value的Map容器,每一个Hash可以存储4294967295个键值对 3.1、存储Hash常用命令:

赋值  
取值
删除
增加数字
判断字段是否存在
获取hash属性个数
获取hash所有属性名称

定义h1 以及username和password字段 值分别是java1234 123456 3.1.1、hget单个字段设置

127.0.0.1:6379> hset h1 username java1234

(integer) 1

127.0.0.1:6379> hset h1 password 123456

(integer) 1

127.0.0.1:6379> hget h1 username

"java1234"

127.0.0.1:6379> hget h1 password

"123456"

3.1.2、hmset 多个字段一起设置

127.0.0.1:6379> hmset h2 username open1111 password 23456

OK

127.0.0.1:6379> hmget h2 username

  1. "open1111"

127.0.0.1:6379> hmget h2 password

  1. "23456"

127.0.0.1:6379> hmget h2 username password

  1. "open1111"

  2. "23456"

127.0.0.1:6379> hgetall h2

  1. "username"

  2. "open1111"

  3. "password"

  4. "23456"

3.1.3、hdel删除属性

可以一次删除一个或者多个

127.0.0.1:6379> hdel h2 username password

(integer) 2

127.0.0.1:6379> hgetall h2

(empty list or set)

3.1.4、hincrby增加数字

127.0.0.1:6379> hset h1 age 20

(integer) 1

127.0.0.1:6379> hincrby h1 age 5

(integer) 25

3.1.5、hexists判断字段是否存在 1表示存在 0表示不存在

127.0.0.1:6379> hexists h1 age

(integer) 1

127.0.0.1:6379> hexists h1 age2

(integer) 0

3.1.6、hlen获取hash属性个数

127.0.0.1:6379> hlen h1

(integer) 3

127.0.0.1:6379> hlen h2

(integer) 0

3.1.7、hkeys获取所有属性名称

127.0.0.1:6379> hkeys h1

  1. "username"

  2. "password"

  3. "age"

127.0.0.1:6379> hkeys h2

(empty list or set)

3.1.8、hvals获取所有属性值

127.0.0.1:6379> hvals h1

  1. "java1234"

  2. "123456"

  3. "25"

127.0.0.1:6379> hvals h2

(empty list or set)

127.0.0.1:6379> 四、Reids数据结构之List类型

ArrayList使用数组方式,LinkedList使用双向链接方式 4.1、存储List常用命令

双向链接表中增加数据
双向链接表中删除数据
存储list常用命令
两端添加
两端弹出
扩展命令

4.1.1、lpush 方式添加

从左边开始添加

127.0.0.1:6379> lpush l1 a b c d

(integer) 4

127.0.0.1:6379> lpush l1 1 2 3 4

(integer) 8

4.1.2、lrange 获取指定方位的集合元素

从第1个开始 到倒数第一个 也就是最后一个 也就是 所有数据

127.0.0.1:6379> lrange l1 0 -1

  1. "4"

  2. "3"

  3. "2"

  4. "1"

  5. "d"

  6. "c"

  7. "b"

  8. "a"

获取从第1个到第6个集合元素

127.0.0.1:6379> lrange l1 0 6

  1. "4"

  2. "3"

  3. "2"

  4. "1"

  5. "d"

  6. "c"

  7. "b"

4.1.3、rpush 从右端开始添加(一般人比较习惯这种方式)

127.0.0.1:6379> rpush l2 a b c d

(integer) 4

127.0.0.1:6379> rpush l2 1 2 3 4

(integer) 8

127.0.0.1:6379> lrange l2 0 -1

  1. "a"

  2. "b"

  3. "c"

  4. "d"

  5. "1"

  6. "2"

  7. "3"

  8. "4"

127.0.0.1:6379> lrange l2 0 6

  1. "a"

  2. "b"

  3. "c"

  4. "d"

  5. "1"

  6. "2"

  7. "3"

4.1.4、lpop 左侧弹出集合元素 4.1.5、rpop 右侧弹出集合元素

127.0.0.1:6379> lrange l2 0 -1

  1. "b"

  2. "c"

  3. "d"

  4. "1"

  5. "2"

  6. "3"

  7. "4"

127.0.0.1:6379> rpop l2

"4"

127.0.0.1:6379> lrange l2 0 -1

  1. "b"

  2. "c"

  3. "d"

  4. "1"

  5. "2"

  6. "3"

———————————————— 版权声明:本文为CSDN博主「大坏蛋^_^」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/qzc70919700…