Redis初步使用+Redis常见数据类型+Redis常用命令

Redis是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。它支持多种数据类型,如字符串、哈希、列表、集合等,并具有原子性操作。文章介绍了Redis的启动与停止方法,包括在Windows和Linux上的操作,以及Redis客户端的连接。此外,文章还概述了Redis的主要配置选项和常用命令,包括数据类型的增删改查操作。

目录

1.简介

2.启动与停止

3.数据类型·常用命令



1.简介

Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构[存放的数据类型],例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。

特点:

1.Redis读取的速度是110000次/s,写的速度是81000次/s。 2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合) 4.持久化,默认在内存中进行计算。可以持久化到磁盘。

  1. 主从复制(集群) 5.官方不支持window系统,但是又第三方版本。 linux系统。

用途:缓存,数据库,消息中间件

NOSQL(Not Only Sql) ,非关系型数据库(key value)关系型数据库的补充

应用场景:缓存,任务队列,消息队列,分布式队列

NOSQL和RDBMS的区别

RDBMS --关系型数据库

  • 高度组织化结构化数据。 --表结构 列 列....

  • 结构化查询语言(SQL) sql语句

  • 数据和关系都存储在单独的表中。

  • 数据操纵语言DML,数据定义语言DDL

  • 严格的一致性. ACID 原子性 隔离性 持久性 一致性

  • 基于事务----都支持事务

NoSQL

  • 代表着不仅仅是SQL

  • 没有声明性查询语言

  • 键 - 值对存储。

  • 非结构化和不可预知的数据 字符串 集合 对象 队列

  • 高性能,高可用性和可伸缩性。 ----便于搭建集群---挂载

NOSQL的产品

redis----结构基于key和value的形式 mongodb---介于关系型数据库和非关系数据库之间

2.启动与停止

Windows

下载 解压

启动:双击 redis-server.exe

停止:Ctrl+C

Linux

(1) 官网下载 .tar.gz文件

(2) 拖入linux 解压

这里放入了 /usr/local文件夹下

tar -zxvf xxx.tar.gz

(3) 进入到解压目录编译并安装

make 编译

make install 安装

(4) 启动redis

redis-server redis.conf //配置文件所在的路径

2.1Redis客户端连接Redis服务器

redis-cli 连接本地服务

redis-cli -h 192.168.1.35 -p 6379

-h:redis服务器主机的ip

-p:redis服务器的端口号

测试:

2.2Redis的配置文件

redis.conf配置文件说明

配置项名称配置项值范围说明
daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
port指定 Redis 监听端口,默认端口为 6379
bind绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
logleveldebug、verbose、notice、warning日志级别,默认为 notice
databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdb
dir指定本地数据库存放目录
requirepass设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX <bytes>指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

(1) 开启后台启动

(2) 设置Redis远程连接

验证

2.3安装redis的客户端的UI软件

等价于Navicat

3.数据类型·常用命令

Redis命令手册

Redis命令参考

Redis存储的是key-value结构的数据,其中key是字符串类型,value有五种常用的数据类型:

  • 字符串 string 一般存放字符串

    • set key value 设置指定key的值

    • mset key value key value 设置多个key-value

    • mget key key 获取多个key的值

    • get key 获取指定key的值

    • setex key seconds value 设置指定key的值,并将key的过期时间设定为seconds秒

    • setnx key value 只有在key不存在时设置key的值

    • incr value为数字,加1 :点赞

    • decr value为数字,减1

  • 哈希 hash 一般存放对象数据

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

    • hset key field value 将哈希表key中的字段field的值设为value

    • hget key field 获取存储在哈希表中的指定字段

    • hdel key field 删除存储在哈希表中的指定字段

    • hkeys key 获取哈希表中所有字段

    • hvals key 获取哈希表中所有值

    • hgetall key 获取在哈希表中指定key的所有字段和值

  • 列表 list

    Redis 列表是简单的字符串列表,按照插入顺序排序,常用命令:

    • lpush key value1 [value2] 将一个或多个值插入到列表头部

    • lrange key start stop 获取列表指定范围内的元素

    • rpop key 移除并获取列表最后一个元素

    • lpop key 移除并获取列表第一个元素

    • llen key 获取列表长度

    • brpop key1 [key2] timeout 移除并获取列表最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

  • 集合 set

    Redis set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,常用命令:

    • sadd key member1 [member2] 向集合中添加一个或多个成员

    • smembers key 返回集合中的所有成员

    • scard key 获取集合的成员数

    • sinter key [key2] 返回给定所有集合的交集 :公共好友

    • sunion key1 [key2] 返回给定所有集合的并集

    • sdiff key1 [key2] 返回给定所有集合的差集(key1 - 1和2的交集)

    • srem key member1 [member2] 移除集合中一个或多个成员

    • srandmember key 随机返回一个元素

  • 有序集合 sorted set

    应用场景:排行榜

    Redis sorted set 有序集合是 string 类型元素的集合,且不允许重复的成员。每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大的的排序。有序集合的成员是唯一的,但分数可以重复。常用命令:

    • zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或更新已存在成员的分数

    • zrange key start stop [withscores] 通过索引区间返回有序集合中指定区间内的成员 从小到大

    • zrevrange key start stop [withscores] 通过索引区间返回有序集合中指定区间的成员 从大到小

    • zincrby key increment member 有序集合中对指定成员的分数加上增量increment

    • zrem key member [member ...] 移除有序集合中一个或多个成员

  • 通用命令

    • keys pattern 查找所有符合给定模式(pattern)的key-------keys *==显示所有key

    • exists key 检查给定key是否存在

    • type key 返回key所储存的值的类型

    • ttl key 返回给定key的剩余生存时间(TTL,time to live),以秒为单位

    • del key 该命令用于在key存在时删除key

    • flushdb 清除当前数据库数据

    • flushall 删除全部数据

    • expire key 为指定的key设置过期时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值