首页 > 数据库 >Redis

Redis

时间:2024-07-19 16:57:19浏览次数:12  
标签:key Redis redis 指定 value 哈希

首先我们先了解nosql是什么

nosql[not only sql]不仅仅是sql。所有非关系型数据库的统称。除去关系型数据库之外的都是非关系数据库。(之前我们所了解的MySql  ”RDBMS“  是关系型数据库   )

然后我们再区分一下NOSQL和RDBMS的区别

RDBMS--关系型数据库得到通称
- 高度组织化结构化数据。 
- 结构化查询语言(SQL) sql语句 
- 数据和关系都存储在单独的表中。
- 数据操纵语言DML,数据定义语言DDL  
- 严格的一致性. 事务
- 基于事务

NoSQL--非关系型数据库的统称
- 代表着不仅仅是SQL
- 没有声明性查询语言。 sql语句
- 键 - 值对存储。
- 非结构化和不可预知的数据  value: 字符串  对象  集合  无需集合
- 高性能,高可用性和可伸缩性。 适合搭建集群。 ---基于内存计算的

然后Redis就是NOSQL常用的产品

redis [企业使用频率很高]
2. mongodb [抽空看看]
3. hbase [适合大数据]

什么是Redis

官网:Redis - The Real-time Data Platform/

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

简单来说:redis他是免费的软件,它可以用作数据库,缓存,消息代理。而且里面可以存储多种数据类型,并且提高了高可用机制。

redis的特点

1.Redis读取的速度是110000次/s,写的速度是81000次/s
2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。线程安全
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化--磁盘,主从复制(集群)
5.官方不支持window系统,但是又第三方版本。 linux系统。

然后就是安装redis

首先它是个c语言,--也就是我们需要安装c的环境

yum  install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

然后需要在官网下载redis源码安装包     ----redis-7.2.3.tar.gz

安装:

1、放到你在安装的位置进行解压

tar -zxvf redis-7.2.3.tar.gz

2、进入解压后的目录

cd redis-7.2.3

3、编译安装:

make install

3、然后我们需要启动服务器

redis-server redis.conf


redis-server: redis启动的脚本命令
redis.conf: redis配置文件的名

安装redis.conf这个配置来启动redis服务.

6、客户端连接redis服务器

redis-cli

redis-cli -h redis服务器的ip -p 端口号
-h: 如果不写默认127.0.0.1
-p: 默认6379

为了后期使用我们需要进入redis.conf文件进行配置

保护机制

安装图形化客户端:

使用:

命令:

设置一个

keys *:查看所有的key
del key ...: 删除指定的key
expire key second: 为指定的key设置过期时间
exists key: 判断指定的key是否存在

数据库:

select n:选择库 
flushdb: 清空当前库
flushall: 清空所有库。

Redis支持的数据类型

redis命令手册/

上面我们说了,redis支持的数据类型很多,最频繁的是;String字符串,Hash,List队列,Set集合,ZSet有序集合等

字符串:

表示里面的value的类型为字符串类型。默认可以存放512M大小的字符串内容

常用:

1. set key value: 存放字符串类型的数据 
2. get key: 获取指定key对应的value值。
3. setex key second value: 存放字符串类型的数据并设置过期时间。
4. setnx key value: 如果指定的key存在,则不设置。不存在则存入。
5. incr key: 为指定的key递增 
6. decr key: 为指定的key递减 

Hash类型

表示value值为Hash数据类型。 表示value又是key-value形式。

常用:

1. hset key field value: 存储哈希类型的数据
2. hget key field: 获取存在哈希表中指定字段的value值
3. hgetall key: 获取在哈希表中指定key的所有字段和值
4. hkeys key: 获取所有哈希表中的字段
5. hvals key: 获取哈希表中所有的值
6. hexists key field:查询哈希表key中,指定的字段是否存在

list类型

list表示列表类型,表示value的值为list类型。

常用:

1. lpush key value value ....: 将一个或多个值插入到列表的头部。
2. lrange key start end: 获取列表指定范围内的元素
3. linsert key before|after element value: 在列表元素前或后插入元素
4. lpop key: 移除并获取列表中的第一个元素
5. lset key index value: 修改指定下标的值。

===============================持续更新============================

标签:key,Redis,redis,指定,value,哈希
From: https://blog.csdn.net/weixin_64916888/article/details/140550409

相关文章

  • Redis系列命令更新--Redis字符串命令
    1、RedisSET命令 (1)说明:用于设置给定key的值;如果key已经存储其他值,SET就覆写旧值,且无视类型;(2)语法:redis127.0.0.1:6379>SETKEY_NAMEVALUE(3)实例:#对不存在的键进行设置redis127.0.0.1:6379>SETkey"value"OKredis127.0.0.1:6379>GETkey"value"#对已存在的键......
  • Redis设计思路总结
    本文从网络模型、数据结构和内存管理、持久化和多机协作四个角度对redis的设计思路进行分析。一.网络模型Redis是典型的基于Reactor的事件驱动模型,单进程单线程,高效的框架总是类似的。网络模型与spp的异步模型几乎一致。Redis流程上整体分为接受请求处理器、响应处理器和应答处......
  • [Redis]字典详解
    字典是Redis服务器中出现最为频繁的复合型数据结构,除了hash结构的数据会用到字典(dict)外,整个Redis数据库的所有key和value也组成了一个全局字典还有带过期时间的key集合也是一个字典。zset集合中存储value和score值的映射关系也是通过字典结构实现的。structR......
  • [Redis]双写一致性
    经典缓存模式旁路缓存读数据首先读缓存,如果缓存中有这个数据,直接返回如果缓存中没有这个数据,去读数据库,如果数据库中有这个数据,先把这个数据更新到缓存,再返回数据如果数据库也没有这个数据,返回无数据写数据先更新数据库,再删除缓存读写穿透缓存这个模式在用户......
  • redis
    1.redis的数据类型简介:Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径......
  • 记一次 redis 事件注册不当导致的内存泄露
    线上的程序跑着跑着内存越来越大,并且没有下降的趋势,重启一下程序也只能短暂恢复。通过htop命令再按一下M键按内存占用大小排个序,程序会占好几个G。那好,让我们来分析一下。收集dump通过top或htop进程管理器,或ps命令查找到目标进程id,然后使用如下命令生成dump:created......
  • docker-compose -- 创建 redis && mysql
    version:'3'services:nest-admin-web:image:buqiyuan/vue3-antdv-admin:stablecontainer_name:nest-admin-webvolumes:-./deploy/web:/etc/nginx/conf.dports:-'80:80'restart:alwaysnetworks:......
  • redis学习-12(实现分布式锁、消息队列、缓存一致性问题、单线程快的原因、跳跃表)
    引用以下内容:redis实现分布式锁:Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案)Redis实现分布式锁的7种方案,及正确使用姿势!redis实现消息队列Redis的学习教程(十)之使用Redis实现消息队列缓存一致性问题想要保证数据库和Redis缓存一致性,推荐采用先更新数......
  • redis学习-11(缓存)
    缓存的收益和成本分析收益:1)加速读写2)降低后端负载成本:1)数据不一致性2)代码维护成本3)运维成本使用场景:1)开销大的复杂计算2)加速请求响应缓存更新策略的选择和使用场景LRU/LFU/FIFO算法剔除:当缓存使用量大于预设的最大值时候,对现有数据进行剔除,一致性最差,维护成本低超时剔......
  • 如何使用Redis实现分布式锁
    在分布式系统中,保证多个进程或线程对共享资源的同步访问是一个常见问题。锁是一种常用的同步机制,但在单机环境中常用的锁机制在分布式系统中往往不再适用。Redis,作为一种高性能的键值存储系统,提供了实现分布式锁的可能。本文将介绍如何使用Redis实现分布式锁,并通过Java代码示例展......