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 键值对统计数量信息

常用数据结构
在这里插入图片描述
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 …]交集计算
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值