首页 > 数据库 >redis

redis

时间:2024-07-31 17:00:31浏览次数:18  
标签:缓存 redis set 键值 lrange mykey

redis 缓存中间件 缓存数据库
nginx web服务
php 转发动态请求
tomcat web页面,也可以转发动态请求。
springboot 自带tomcat。

在这里插入图片描述

redis也是一个数据库,不单单是一个缓存工具。
redis 非关系型数据库 nosql not only sql 不仅仅是sql
键值对形式
key value
test1=test2
数据的类型不是定义好的类型

redis简介:
redis 远程字典服务器
键值对
开源的,C语言写的nosql数据库
redis基于内存运行,所有的数据不是保存在硬盘,而是内存
持久化-------定期或者认为的把数据保存到硬盘。
redis的优点:
1.极高的读写速度,读速度可以达到110000次/s写入速度81000/s
2.支持丰富的数据类型,键值对可以定义多种数据类型 string hash set
3.支持数据持久化,内存当中的数据保存到磁盘
4.原子性,redis所有操作都是原子性。
5.支持主从模式和高可用模式(哨兵模式),以及集群

redis基于内存运行的数据库,缓存是最常应用的场景。
排行榜
计数器
存储关系
实时分析记录,日志系统

缓存的概念:
缓存是一种用于存储临时数据副本的技术。目的就是提高访问速度和性能。
缓存通常位于数据的访问路径上,数据的必经之路。可以在不直接访问原始数据的情况下,可以直接获取数据。
缓存的应用场景:
web缓存
数据库缓存
对象缓存(大数据应用)

redis-cli -h 192.168.233.10 -p 6379
-h 指定IP地址
-p 指定端口
-a 密码(没有密码可以不加)
redis-cli 命令行工具
redis-server start stop restart 控制redis
redis-benchmark 检测redis在本机的运行效率
redis-check-aof 修复aof持久化的文件
redia-check-rbd 修复rbd持久化的文件
redis-benchmark -h 192.168.233.10 -p 6379 -c 100 -n 100000
向redis的主机模拟发送100个并发连接,同时发送10万个请求。
redis-benchmark -h 192.168.233.10 -p 6379 -q -d 100
模拟存储100个数据包的性能测试

redis数据库常用的命令
基础数据类型
string 字符串
list 列表
hash 散列,键值对集合
set 集合,不重复的无序集合
zet 集合,有序集合。

set test1 10   set创建数据	 set+键的名称+键值
get test1      get获取数据   get+键的名称

在这里插入图片描述

KEYS *  查看所有键的键值对
keys test 查看指定的键值对
exists test1  如何判断键值是否存在  输出值为1则存在,为0则不存在

在这里插入图片描述

set test1 xy102  set对原有的键值对进行创建,就是对原有值进行更改

在这里插入图片描述

type test1    type +键值对名称	查看键值的类型
del test1     del+键值对名称(删除多个中间用逗号隔开)	删除键值

在这里插入图片描述

rename test4 chengqian 	修改健的名称为chengqian

在这里插入图片描述

如何添加密码
config set requirepass 123456   设置密码
auth 123456
config get requirepass

在这里插入图片描述

登录不输入密码可以连接,但是不可以查询
有了密码才能查
redis-cli -h 192.168.233.10 -p 6379 -a 123456

redis-cli -h 192.168.233.10 -p 6379
auth123456

在这里插入图片描述

string类型 是redis的基础类型 最大能够存储512MB的数据
数字,图片等等都是默认string类型。

append 追加,如果没有这个键会创建,如果有就会追加
append chengqian shuai
append chengqian zhendema

在这里插入图片描述

set mykey 20
incr mykey	让这个值自增1
decr mykey	让这个值自减1
incrby mykey 10 	指定加10
decrby mykey 10 	指定减10

在这里插入图片描述

setex mykey 15 hello  临时存储键值15s,15s后自动删除
ttl mykey  查看生命周期

在这里插入图片描述

dbsize 当前表有5个键值对
config get databases  查看有多少个库,一共16个

在这里插入图片描述

select * 切换到第*个库
每个库都是独立的,互不影响
move mykey 1 把键值对mykey移动到1库

在这里插入图片描述

flushdb 清空当前库。
flushall清空所有的库。

在这里插入图片描述

mset test1 1 test2 2 test3 3  一次性创建多个
mget test1 test2 test3  一次性查看多个

在这里插入图片描述

list类型 列表

lpush mykey a b c d
lrange mykey 0 -1 打印这个列表中的所有元素
-1是列表当中的最后一个元素

在这里插入图片描述

lrange mykey 0 2
lrange mykey 1 2
lrange mykey 0 1
lrange mykey 1 2
lrange mykey 2 3

在这里插入图片描述

lpushx mykey e 插入
lrange mykey 0 -1
lpop mykey 移除
llen mykey 查看

在这里插入图片描述

lrem myken 2 a  删除两个等于a的值
lrem myken 1 c
del myken #删除这个键
lpush myken a b c d e f
lindex myken 4 从右往左查看第四位数(从0开始)

在这里插入图片描述

lset mykey 5 10 替换指定位置的值
lrange myken 0 -1  查看所有键值
linsert mykey before 10 9 在10前面插入9

在这里插入图片描述

linsert mykey after e 9  在e后面插入9
lrange myken 0 -1

在这里插入图片描述

rpush mykey1 a b c d 
lindex mykey 0
lindex myken1 0
rpush mykey1 e
lindex mykey1 3
lindex mykey1 4
lrange mykey1 0 -1

在这里插入图片描述

rpop mykey1 

在这里插入图片描述

hash类型 散列 用来存储对象,对象类别和id构成一个键名。
hash存储的空间很小,占用的内存和持久化后的磁盘空间都很少。

hset myhash id1 1 id2 2 id3 3
hget myhash id
hash是一共键值对,包含多个对象和对象的值
myhash就是一个hash值,一个hash值可以存4294967295个键值对。

在这里插入图片描述

hlen myhash  查询myhash中有几个对象

在这里插入图片描述

HDEL myhash id   删除id这个对象

在这里插入图片描述

hmget myhash id1 id2
hgetall myhash
hkeys myhash
hvalsmyhash

在这里插入图片描述

hsetnx myhash id3 3 添加一个对象,前提是这个对象不能存在

在这里插入图片描述

set 集合无序集合
元素类型只能是string类型,无序集合当中,元素具有唯一性,不允许重复。
应用场景,用set的数据来追踪唯一性的数据,比方说IP地址或者根据客户的id区分不同的客户购买的同一产品。

sadd myset a b b c
smembers myset 
sadd myset a d e

在这里插入图片描述

scard myset  获取当前集合中的元素
srandmember myset 从当前集合中随机看一个元素
spop myset  随机删除一个元素
srem myset a  指定删除

在这里插入图片描述

在这里插入图片描述

把集合1中的数据移到另一个集合中。集合1当中没有这个数据
smove myset myset2 a

在这里插入图片描述

有序集合,sorted set zset
元素类型都是string,元素也是唯一的不能重复
每个元素都会关联一个double类型的分数score(表示权重),通过权重的大小进行排序,权重可以相同

zadd myzet 1 "one"
zadd myzet 2 "two" 3 "three"
zrange myzet 0 -1 withscores

在这里插入图片描述

zrangebyscore myzet 2 5  2表示最小值5表示最大
获取权重2-5的成员

在这里插入图片描述

zrevrabge myzet 1 3

在这里插入图片描述

标签:缓存,redis,set,键值,lrange,mykey
From: https://blog.csdn.net/gjw01/article/details/140775530

相关文章

  • Flask框架内容基础3 -- 使用redis实现异步任务队列
    前面所了解的所有请求都是同步的,那么当面临异步请求时,应该怎么做?调用者:携带参数发送请求API:接收请求并生成一个任务ID,接下来:返回给调用者+放到任务队列中worker:等待redis队列(List),一旦接收到任务,就执行并将结果返回到结果队列(Hash)调用者:等待n秒后,携带任务ID再次发送请求,获......
  • Redis 缓存中间件 缓存数据库
    Redis缓存中间件缓存数据库nginxweb服务PHP转发动态请求tomcatweb页面也可以转发动态请求springboot自带tomcat所有的数据库不支持高并发,一旦访问量激增,数据库很快就会崩溃。Redis非关系型数据库nosqlnotonlysql不仅仅是sql键值对形式:keyvalue数据的......
  • 实现一个简单的redis分布式锁
    分布式锁一般有三种实现方式:1.数据库乐观锁;2.基于Redis的分布式锁;3.基于ZooKeeper的分布式锁。 为了确保分布式锁可用,至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解......
  • redis基础
    下面资料来自黑马程序员-整理课程内容Redis入门Redis数据类型Redis常用命令在Java中操作Redis1.Redis入门1.1Redis简介Redis是一个基于内存的key-value结构数据库。Redis是互联网技术领域使用最为广泛的存储中间件。官网:https://redis.io中文网:https://www.redis.n......
  • [Redis]哨兵
    这次聊聊,Redis的哨兵机制。为什么要有哨兵机制?在Redis的主从架构中,由于主从模式是读写分离的,如果主节点(master)挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点(slave)进行数据同步了。这时如果要恢复服务的话,需要人工介入,选择一个「从节点」切换为「主节......
  • java @Cacheable生成的redisKey,出现两个连续的冒号::
    1、参考基于redis2.1.6实现springcache生成的key多出一个冒号2、解决需要对key进行处理,【重点】是computePrefixWith方法config=config.computePrefixWith(cacheName->{returncacheName+StrUtil.COLON;});以下是完整代码实现CacheK......
  • Docker中使用自定义网络方式实现Redis集群部署与测试流程
    场景Docker中Docker网络-理解Docker0与自定义网络的使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/140788458参考上面的流程实现自定义网络的实现。下面记录其应用实例,使用Docker的自定义网络实现redis集群部署。注:博客:https://blog.csdn.net/badao_......
  • Linux安装redis(超级详细)
    持续关注我,我将分享一个网站完整的搭建过程!序号内容链接1linux安装jdk1.8https://blog.csdn.net/weixin_43836859/article/details/1404782392linux安装mysql5.7https://blog.csdn.net/weixin_43836859/article/details/1406272333linux安装redishttps://blog.csdn.net/we......
  • redis持久化
    除了正常服务以外,数据量的扩容,数据安全也属于高可用的范畴之内。实现redis高可用的方式1.持久化 最简单的高可用方法,主要功能就是备份数据。即把内存当中的数据保存到硬盘当中。2.主从复制3.哨兵模式4.redis的集群持久化概念是把内存当中的数据保存到硬盘当中。开启持......
  • Redis 集群
    Redis集群  Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。  下面会对集群的节点、槽指派、命令执行、重新分片、转向、故障转移、消息等各个方面进行介绍  一、节点  1.连接节点  一个Redis集群......