Redis

Posted ptxxc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis相关的知识,希望对你有一定的参考价值。

Redis数据类型

数据类型:

String(字符串)。
Hash(哈希),键值对结构。
list(列表),列表的值有序可重复。
set(集合),集合值无序不可重复。
sort set(有序集合),集合值有序不可重复。

 

 

String类型(String  Key-Value):

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

 

 

赋值语法:SET key value

127.0.0.1:6379> set test 123456

OK

取值语法:GET key

127.0.0.1:6379> get test

"123456“ 

 

取值并赋值语法:GETSET key value

127.0.0.1:6379> getset s2 222

"111"

127.0.0.1:6379> get s2

"222"

 

获取字符串长度语法:STRLEN key

STRLEN命令,返回键值的长度,如果键不存在则返回0。

127.0.0.1:6379> strlen str

(integer) 0

127.0.0.1:6379> set str hello

OK

127.0.0.1:6379> strlen str

(integer) 5

 

Hash类型(key-filed-value)

Redis hash 是一个键值(key=>value)对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

相当于是一个key中存在多个map。Redis中的散列可以看成具有String key和String value的map容器,可以将多个

key-value存储到一个key中。每一个Hash可以存储4294967295个键值对。

 

设置值:hset  key  filed value 

技术图片

 

获取值:hget  key filed

技术图片

 

List类型

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

Redis的列表允许用户从序列的两端推入或者弹出元素,列表由多个字符串值组成的有序可重复的序列,是链表结构,所以向列表两端添加元素的时间复杂度为0(1),获取越接近两端的元素速度就越快。这意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。List中可以包含的最大元素数量是4294967295。

 

向列表两端增加元素

向列表左边增加元素语法:LPUSH key value [value ...]

127.0.0.1:6379> lpush list:1 1 2 3

(integer) 3

 

向列表右边增加元素语法:RPUSH key value [value ...]

127.0.0.1:6379> rpush list:1 4 5 6

(integer) 3

 

查看列表语法LRANGE key start stop

LRANGE命令是列表类型最常用的命令之一,获取列表中的某一片段,将返回start、stop之间的所有元素(包含两端的元素),

索引从0开始。索引可以是负数,如:“-1”代表最后边的一个元素。

127.0.0.1:6379> lrange list:1 0 2

1) "2"

2) "1"

3) "4"

 

Set类型

Redis 的 Set 是 string 类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

Redis的集合是无序不可重复的,此处的无序是数据不能重复。和列表一样,在执行插入和删除以及判断是否存在某元素时,效率是很高的。集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是4294967295。

 

增加/删除元素语法:SADD key member [member ...]:

127.0.0.1:6379> sadd set a b c

(integer) 3

127.0.0.1:6379> sadd set a

(integer) 0

 

语法:SREM key member [member ...]:

127.0.0.1:6379> srem set c d

(integer) 1

 

 

 

SortedSet类型zset

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

 

增加元素

向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。

语法:ZADD key score member [score member ...]:

127.0.0.1:6379> zadd scoreboard 80 zhangsan 89 lisi 94 wangwu

(integer) 3

127.0.0.1:6379> zadd scoreboard 97 lisi

(integer) 0

 

 删除元素

移除有序集key中的一个或多个成员,不存在的成员将被忽略。

key存在但不是有序集类型时,返回一个错误。

语法:ZREM key member [member ...]:

127.0.0.1:6379> zrem scoreboard lisi

(integer) 1

 

以上是关于Redis的主要内容,如果未能解决你的问题,请参考以下文章

RedisRedis 安装启动使用流程

RedisRedis 安装启动使用流程

redisredis知识点总结

redisredis知识点总结

RedisRedis高级

RedisRedis简述