Redis系列(一)什么是Redis及Redis常用数据结构

Redis的起源

2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人 Salvatore Sanfilippo便 对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。 不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。
VMware公司从2010年开始赞助Redis的开发, Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求。

Redis的安装方式

1. Docker安装方式:

#拉取redis镜像
> docker pull redis
 
#运行 redis 容器将容器的6379端口映射到主机的6379端口
 
> docker run --name myredis -d -p 6379:6379 redis
 
#执行容器中的redis-cli 可以直接使用命令操作redis
 
>docker exec -it myredis redis-cli

2.Git 源码安装方式

#下载源码
> git clone --branch 3.2 --depth 1 git@githup.com:anthirez/redis.git
 
cd redis
#编译
>make
>cd src
 
#运行服务器,修改配置文件redis.conf daemonize表示在后台运行
>./redis-server --dameomize yes
 
#使用客户端连接
>./redis-cli

3. 直接安装方式

#mac
>brew install redis
 
#ubuntu
>apt-get install redis
 
#redhat
>yum install redis
 
#运行客户端
>./redis-cli
常用数据结构及命令

查看redis运行时参数命令
info:查看redis服务运行信息,分为9大块,每个块都有非常多的参数,这9块分别为:
Server 服务器运行的环境参数
Clients 客户端相关信息
Memory 服务器运行内存统计数据
Persistence 持久化信息
Stats 通用统计数据
Replicatio 主从复制相关信息
CPU CPU使用情况
Cluster 集群信息
KeySpace 键值对统计数量信息

常用数据结构
Redis系列(一)什么是Redis及Redis常用数据结构_第1张图片
1.String类型
基础数据类型。在redis中所有的值都是字符串。在redis中命令不区分大小写。

常用命令

命令 作用
SET key value 存入字符串键值对
MSET key value [key value …] 批量存储字符串键值对
SETNX key value 存入一个不存在的字符串键值对
GET key 获取字符串键值
MGET key [key …] 批量获取字符串键值
DEL key [key …] 删除一个键
EXPIRE key seconds 设置一个键的过期时间(秒)
INCR key 将key中存储的数字加1
DECR key 将key中存储的数字减1
INCRBY key increment 将key所存储的值加increment
DECRBY key decrement 将keu所存储的值减decrement

2.Hash类型

常用命令

命令 作用
HSET key field value 存储一个哈希表key的键值
HSETNX key field value 存出一个不存在的哈希表key的键值
HMSET key field value [field value …] 在一个哈希表key中存储多个键值对
HGET key field 获取哈希表key对应的field键值
HLEN key 返回哈希表key中field的数量
HINCRBY key field increment 为哈希表key 中field键的值加上增量increment

优点:

  1. 同类数据归类整合存储,方便数据管理
  2. 相比Stirng操作消耗与CPU更小
  3. 相比String存储更节省空间

缺点:

  1. 过期功能不能使用在field上,只能用在key上
  2. Redis集群架构上不适合大规模使用

List类型

常用命令

命令 作用
LPUSH key value [value …] 将一个或多个value值插入到key列表的表头(最左边)
RPUSH key value [value …] 将一个或多个value值插入到key列表的表尾(最右边)
LPOP key 移除并返回key列表的头元素
RPOP key 移除并返回key列表的尾元素
LRANGE key start stop 返回列表key中指定区间内的元素,区间以偏移量start和stop指定
BLPOP key [key …] timeout 从key列表表头弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待
BRPOP key [key …] timeout 从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待

Set类型

集合中的元素是无序的并且没有重复的

常用命令

命令 作用
SADD key member [member …] 往集合key中存入元素,元素存在则忽略,若key不存在则新建
SMEMBERS key 获取集合key中所有元素
SCARD key 获取集合key的元素个数
SISMEMBER key member 判断member元素是否存在于集合key中
SRANDMEMBER key [count] 从集合key中选出count个元素,元素不从key中删除
SPOP key [count] 从集合key中选出count个元素,元素从key中删除
SINTER key [key …] 交集运算
SINTERSTORE destination key [key …] 将交集结果存入新集合destination中
SUNION key [key …] 并集运算
SUNIONSTORE destination key [key …] 将并集结果存入新集合destination中
SDIFF key [key …] 差集运算
SDIFFSTORE destination key [key …] 将差集结果存入新集合destination中

sortedSet类型(zset)

集合中的元素都是有序的,并且此集合中每个元素都有一个分数,可以根据分数升序排列

常用命令

命令 作用
ZADD key score member [[score member]…] 往有序集合key中加入带分值元素
ZREM key member [member …] 从有序集合key中删除元素
ZSCORE key member 返回有序集合key中元素member的分值
ZINCRBY key increment member 为有序集合key中元素member的分值加上increment
ZUNIONSTORE destkey numkeys key [key …] 并集计算
ZINTERSTORE destkey numkeys key [key …] 交集计算

你可能感兴趣的:(Redis系列)