当前位置: 首页 > article >正文

REDIS1.0

redis的基础知识:

NOsql: not only sql

非关系型数据库:主流的数据库以外,基本上都是nosql

非关系型数据库也有库,库是系统自带的,而且也不需要创建,也不能创建,也无需在裤子创建表,直接在预设的库中,以键值对的形式保存数据

key — value

键值之间没有任何关联,值可以是任意合法的数据

redis:redis是开源的,使用c语言编写的nosql数据库

redis是基于内存运行的,只有执行持久化操作之后,数据才会写入到磁盘中去(自带的,定时执行持久化)

  • 1、持久化要打开

  • 2、注意内存的使用率(它是内存型缓存数据库,对内存要求较高)

  • 3、redis的工作模式:redis是单进程模式,启动一个就是一个进程,一台服务器可以启动多个redis的进程,端口不能相同 ----------它的默认端口是6379

  • 4、在工作中,要根据情况来选择开启多少个进程,单进程的话高并发的情况下处理速度也会降低,进程的数量太多,反而会影响cpu的效率

redis的特点:

1、具有极高的读写速度,读取速度:110000次/秒,写速度:81000次/秒

2、数据类型非常丰富

3、支持数据持久化

4、原子性,redis的操作都是原子性

5、也支持数据的备份和恢复,以及集群

redis: 排行榜、计数器、存储关系之类

vim /etc/redis/redis.conf

systemctl restart redis

redis-cli -h 192.168.31.18 -p6379 -a 密码

  • -h:指定对方的ip地址
  • -p:指定端口
  • -a:密码

redis-benchmark -h 192.168.31.18 -p6379 -c 100 -n 100000

  • -c:并发
  • -n:请求
    发送100个并发的链接和100000个请求的测试性能

redis的数据类型和常用的命令:

数据类型:

1、string 字符串,最常见的类型,如无特殊声明,默认就是此类型

2、list 列表类型

3、hash 散列

4、set 集合

5、sorted set 有序集合

redis的库:

一共有16个库,0~15库,默认在0库

每个库之间都是独立的

keys * 在生产中是禁用的:展示所有数据,会整个卡死

  • keys t?(问号表示任意单个字符)
  • keys t*(表示任意长度)

type :查询键值的数据类型

rename test1 test3 :修改名称

键值对的生命周期:

如果在默认的条件,set的方式,都是永久存储

set test1 3 ex 30

  • ex:以秒为单位计算生命周期
  • px:以毫秒为单位计算生命周期

ttl test1 查看生命周期:生命周期到期之后,会自动从库中删除

EXPIRE test1 30:对已经创建好的键值对,设定生命周期

move test1 1 :将test1 转移到1库中

DBSIZE:查看当前库key的数量

config set requirepass 123456:设定redis密码
(退出后重新登录,登录前如果不输入密码,所有操作都是禁止的)

auth 123456:在命令行输入密码

数据类型:

string类型:redis的基础数据类型,最大的存储是512MB,可以存储的数据类型,字符串,数字,图片

exists test1:判断键值是否存在,0为不存在,1则存在

append test1 1:(如是已存在的键,返回值的长度,如果不存在则直接创建)

strlen test1:返回值的长度

incr key:可以对键值的值自增1
decr key:可以对键值的值自减1
key的值必须是整数

incrby key 5 :增5
decrby key 5:减5

批量设置、批量查询键值对:
mset(设置):mset key1 1 key2 2 key3 3

mget(查询):mget key1 key2 key3


2、list列表数据类型:

lpush 列表名称 对象(可以是多个,从左到右依次插入)

lrange + 列表名 0 -1:查询列表 -------- 用get无法查询列表

rpush test11 a b c d(rpush正向排序 ------ 从左到右,a为第一个)

lindex 列表名 + 值的索引下标:根据索引下标的值查询

lset 列表名 + 旧下标 +新下标 :修改索引下标的值

linsert test11 before a 10:在a之前插入数字10

linsert test11 after a 11:在a之前插入数字11


3、hash数据类型

散列类型,用于存储对象,用对象的类别和id构成键名,用字段来表示对象的属性,字段值就是对象的属性值

hset myhash xy105 汽车
键名+对象名+属性

hget 键名 对象名:查看

hdel myhash xy105 汽车删除myhash这个键中,xy105对象中的汽车属性

如果要删除键就用del

hset test1 number 10

hincrby test1 number 5(值加5)

hmset test1 1 test2 2 test3 3:(一次创建多个)

hmget test1 test2 test3

hkeys test2:只显示对象

hvals test:只显示对象的属性


http://www.kler.cn/a/461389.html

相关文章:

  • 【开源项目】数字孪生立交~东湖高新区互通式立交数字孪生可视化项目——开源工程及源码
  • 数字PWM直流调速系统设计(论文+源码)
  • 【工具进阶】使用 Nmap 进行有效的服务和漏洞扫描
  • 【pytorch-lightning】架构一览
  • Nginx - 整合lua 实现对POST请求的参数拦截校验(不使用Openresty)
  • 三维场景重建3D高斯点渲染复现
  • 【每日学点鸿蒙知识】长时任务、HarmonyAppProvision申请、preferences、Testing工具、应用保活
  • 2.ATK-DLRK3568 QT竖屏显示改为横屏显示
  • 【MySQL初级】第1-4章
  • quasar中@click.stop没有生效,点击按钮时候会跳转
  • 【2024年-9月-29日-开源社区openEuler实践记录】 Euler - Copilot - Framework:开启智能辅助编程新征程
  • Rabbitmq追问1
  • Go语言中值接收者和指针接收者的区别?
  • HTML<select>标签有关的定义和属性
  • 【人工智能机器学习基础篇】——深入详解监督学习之模型评估:掌握评估指标(准确率、精确率、召回率、F1分数等)和交叉验证技术
  • c# Record关键字
  • Github 正常访问但是ping不同也无法进行git操作
  • 通过无障碍服务(AccessibilityService)实现Android设备全局水印显示
  • Docker 搭建 Gogs
  • SpringBoot 实现登录功能
  • 书生·浦语大模型全链路开源体系-第9关 LMDeploy 量化部署进阶实践
  • TB1801D 线性驱动 LED 恒流芯片
  • 苹果系统MacOS下采用ObjectC访问opencv加载图片的一个简单实例
  • Flink的多流转换(分流-侧输出流、合流-union、connect、join)
  • 中华人民共和国网络安全法
  • BOE(京东方)“向新2025”年终媒体智享会落地深圳