Redis基本教程

简介

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD
协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis
通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted
sets)等类型。

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

安装

Windows 下安装

下载地址:https://github.com/tporadowski/redis/releases。

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
在这里插入图片描述
打开文件夹,内容如下:

在这里插入图片描述
打开一个 cmd 窗口 使用 cd 命令切换到redis根目录运行:

redis-server.exe redis.windows.conf

输入之后,会显示如下界面:
在这里插入图片描述这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。

切换到 redis 目录下运行:

redis-cli.exe -h 127.0.0.1 -p 6379

设置键值对:

set myKey abc

取出键值对:

get myKey
Linux 源码安装

下载地址:http://redis.io/download,下载最新稳定版本。
本教程使用的最新文档版本为 2.8.17,下载并安装:

# wget http://download.redis.io/releases/redis-6.0.8.tar.gz
# tar xzf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make

执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:
下面启动 redis 服务:

# cd src
# ./redis-server

注意这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动.

# cd src
# ./redis-server ../redis.conf

redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动 redis 服务进程后,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了。 比如:

# cd src
# ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
Ubuntu apt 命令安装

在 Ubuntu 系统安装 Redis 可以使用以下命令:

# sudo apt update
# sudo apt install redis-server
启动 Redis
# redis-server
查看 redis 是否启动?
# redis-cli

以上命令将打开以下终端:

redis 127.0.0.1:6379>

127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令

redis 127.0.0.1:6379> ping
PONG

以上说明我们已经成功安装了redis

类型

数据库16个 0-15
类型 string ,hash ,list ,set ,sort set

命令行

使用第一个数据库

select 0

查询键

keys *

删除键

del key

APP功能,1天后消息自动删除

expire key 秒

返回给定 key 的剩余生存时间

TTL key

randomkey 随机给个KEY

----string----
  • set key value 设置指定 key 的值
  • get key 获取指定 key 的值
  • STRLEN key key 所储存的字符串值的长度
  • 点赞、直播间用户 +1 -1
  • INCR key 将 key 中储存的数字值增一
  • DECR key 将 key 中储存的数字值减一
  • INCRBY key increment
  • DECRBY key decrement

能不能装对象? JSON

set temo “{“name”:“yangang”}”

----hash----
  • hset key 属性 值
  • hmset key 属性1 值1 属性2 值2 属性3 值3
  • HKEYS key 显示对象所有属性
  • HVALS key 显示所有值
  • HGET key field 取值
  • HMGET key field field field 获取给定字段的值
  • HDEL key field1 [field2] 删除一个或多个字段
-----list-----
  • LPUSH key value1 [value2] 头部增加
  • RPUSH key value1 [value2] 尾部增加
  • LLEN key 获取列表长度
  • LINDEX key index 通过索引获取列表中的元素
  • LRANGE key start stop 获取列表指定范围内的元素
  • LPOP key 移出并获取列表的第一个元素
  • RPOP key 移出最后一个元素并返回该元素
---------set--------去重复--------
  • SADD key member1 向集合添加一个或多个成员
  • SREM key member1 移除集合中一个或多个成员
  • SPOP key 移除并返回集合中的一个随机元素
  • SMEMBERS key 返回集合中的所有成员
  • 差集 SDIFF key1 [key2]
  • 交集 SINTER key1 [key2]
  • 并集 SUNION key1 [key2]
    A = 5人 180 A,B,C,D,E
    B = 10人 20w B,E,F,G,H,Y
-----sorted set有序集合------------
  • ZADD key score1 member1 [score2 member2]向有序集合添加一个或多个成员,或者更新已存在成员的分数
  • ZCARD key获取有序集合的成员数
  • ZCOUNT key min max计算在有序集合中指定区间分数的成员数
  • ZINCRBY key increment member 自增
  • ZLEXCOUNT key min max 计算指定区间的成员数
  • ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合指定区间内的成员
  • ZRANGEBYLEX key min max [LIMIT offset count]通过字典区间返回有序集合的成员
  • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]通过分数返回有序集合指定区间内的成员
  • ZRANK key member返回有序集合中指定成员的索引
  • ZSCORE key member返回有序集中,成员的分数值
  • ZREM key member[member1 …]移除一个或多个

本文参考:菜鸟教程https://www.runoob.com/redis/redis-sorted-sets.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碰磕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值