1.2 Redis 数据结构简介
这5种数据结构类型分别为STRING(字符串),
LIST(列表)
SET (集合)
1.2.1 Redis中的字符串
Redis的字符串和其他编程语言或者其他键值存储提供的字符串非常相似。
GET 获取存储在给定键的值
DEL 删除存储在给定键的值(这个命令可以用于所有类型)
使用redis-cli 为了让读者在一开始就能便捷地与redis进行交互
1.2.2. Redis中的列表
Redis 对链表(linked-list)结构的支持使得它在键值存储的世界中独树一帜。
一个列表结构可以有序地存储多个字符串
Redis 列表可执行的操作和很多编程语言里面的列表操作非常相似:
RPUSH 将给定值推入到列表的右端
LRANGE 获取列表在给定范围上所有的值
LINDEX 获取列表在给定位置上的单个元素
LPOP 从列表的左端弹出值
127.0.0.1:6379> RPUSH list1 'aa'
(integer) 1
127.0.0.1:6379> RPUSH list1 'bb'
(integer) 2
127.0.0.1:6379> RPUSH list1 'cc'
(integer) 3
127.0.0.1:6379> RPUSH list1 'dd'
(integer) 4
127.0.0.1:6379> keys *
1) "dd"
2) "cc"
3) "bb"
4) "list1"
127.0.0.1:6379> get list1
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379>
127.0.0.1:6379> LRANGE list1 0 1
1) "aa"
2) "bb"
127.0.0.1:6379>
127.0.0.1:6379> LINDEX list1 0
"aa"
127.0.0.1:6379> LINDEX list1 1
"bb"
1.2.3 Redis 的集合
Redis的集合和列表都可以存储多个字符串,它们之间的不同在于
列表可以存储多个相同的字符串,而集合则通过使用散列来保证自己存储的每个字符串
都是各不相同的
因为Redis的集合使用无序方式存储元素,所以用户不能像使用列表那样,将元素推入集合的某一端,
或者从集合的某一端弹出元素。
SADD 将给定元素添加到集合
SMEMBERS 返回集合包含的所有元素
SISMEMBERS 检查给定元素是否存在于集合中
SREM 如果给定的元素存在于集合中
127.0.0.1:6379> sadd set-key 'aa'
(integer) 1
127.0.0.1:6379> sadd set-key 'aa'
(integer) 0
127.0.0.1:6379> sadd set-key 'aa'
(integer) 0
127.0.0.1:6379> SMEMBERS set-key
1) "aa"
127.0.0.1:6379> sadd set-key 'bb'
(integer) 1
127.0.0.1:6379> sadd set-key 'bb'
(integer) 0
127.0.0.1:6379> sadd set-key 'cc'
(integer) 1
127.0.0.1:6379> SMEMBERS set-key
1) "cc"
2) "bb"
3) "aa"
1.2.4 Redis的散列:
Redis 的散列可以存储多个键值对之间的映射
和字符串一样,散列存储的值既可以是字符串又可以是数字值
HSET 在散列里面关联给定的键值对
HGET 获取指定散列键的值
127.0.0.1:6379> hset hash-key aa bb
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> keys *
1) "dd"
2) "bb"
3) "hash-key"
4) "cc"
5) "list1"
6) "set-key"
127.0.0.1:6379> hset hash-key cc dd
(integer) 1
127.0.0.1:6379> hget hash-key cc
"dd"
127.0.0.1:6379>