redis服务介绍

news/2024/7/8 1:42:38 标签: redis, wpf, 数据库

redis

    • 基础概念
    • 安装使用
      • 基础操作命令
      • 数据类型操作命令
      • 管理和维护命令

基础概念

Remote Dictionary Server(Redis)远程字典服务器是完全开源免费的,用C语言编写的,遵守BSD开源协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL(非关系型)数据库,它也通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map),列表(list), 集合(sets)和有序集合(sorted sets)等类型。。

Redis的主要特点:

  • 高性能:Redis通过将数据存储在内存中,提供了极快的读写速度。
  • 多种数据类型:支持丰富的数据类型,如字符串、列表、集合、有序集合和哈希。
  • 持久化:虽然Redis主要是内存数据库,但它提供了多种持久化选项,包括RDB快照和AOF(Append Only File)日志。
  • 高可用性:通过主从复制和Redis Sentinel实现高可用性,确保数据的可靠性和服务的连续性。
  • 分布式:支持Redis Cluster,允许数据分布在多个节点上,实现水平扩展。

常见应用场景:

  • 缓存:由于其高性能,Redis常用于缓存层,加速应用的响应速度。
  • 会话存储:许多网站使用Redis来存储用户会话信息。
  • 排行榜和计数器:利用有序集合和其他数据结构,Redis可以方便地实现排行榜和计数器功能。
  • 发布/订阅:Redis的发布/订阅功能可以用于实时消息传递。
  • 队列:通过列表和集合,Redis可以实现高效的队列管理。

redis可以在特定应用场景下作为rabbimq和memcached的替代。
使用Redis而不是memcached来解决问题,不仅可以让代码变得更简短、更易懂、更易维护,而且还可以使代码的运行速度更快(因为用户不需要通过读取数据库来更新数据)。除此之外,在其他许多情况下,Redis的效率和易用性也比关系数据库要好得多。

什么数据会存到Redis数据库中?主要是热点数据,不会经常改变的,一般是常量。比如登录验证的Cookie,购物车,历史浏览记录。(只要具有一定时间的生命周期)比如首页的商品信息,一般不会变。比如秒杀的商品信息,一般也不会变。比如地图的经纬度信息,一般也不会变。

安装使用

ubuntu2404环境

apt install -y redis
systemctl enable --now redis-server

官网命令手册

redis数据库不区分大小写,并且输入命令会有提示!!

基础操作命令

连接到Redis服务器:

redis-cli -h 127.0.0.1 -p 6379
root@huhy:~# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379>

字符串

设置键值对并获取:key是键,huhy就是值对

127.0.0.1:6379> set key "huhy"
OK
127.0.0.1:6379> get key
"huhy"
127.0.0.1:6379>

删除值对;

127.0.0.1:6379> del key
(integer) 1
127.0.0.1:6379> get key
(nil)

查看所有键:,*表示所有

127.0.0.1:6379> keys *
(empty array)

数据类型操作命令

列表

设置键值及过期时间:10是秒为单位,十秒后mykey就会消失,内容为空

127.0.0.1:6379> setex mykey 10 "setkey"
OK
127.0.0.1:6379> get mykey
"setkey"
127.0.0.1:6379>

获取键的剩余生存时间:

127.0.0.1:6379> setex hu 20 "test"
OK
127.0.0.1:6379> ttl hu
(integer) 11
127.0.0.1:6379> ttl hu
(integer) 8
127.0.0.1:6379> ttl hu
(integer) 6
127.0.0.1:6379> ttl hu
(integer) 5
127.0.0.1:6379>

追加值到键:如果追加到设置有过期的键中可能会导致过期时间失效

127.0.0.1:6379> get hu
"hy"
127.0.0.1:6379> append hu "hy"
(integer) 4
127.0.0.1:6379> get hu
"hyhy"
127.0.0.1:6379>

左侧推入元素:从而形成一个列表

127.0.0.1:6379> lpush mylist "test1"
(integer) 1
127.0.0.1:6379> lpush mylist "test2"
(integer) 2
127.0.0.1:6379> lpush mylist "test3"
(integer) 3

查看列表中的元素:可以理解成test1是第一个,从左边推入一个元素后,就变成了第二个

127.0.0.1:6379> lrange mylist 0 -1
1) "test3"
2) "test2"
3) "test1"

获取列表长度:

127.0.0.1:6379> llen mylist
(integer) 3
127.0.0.1:6379>

右侧推出元素:从而删除列表中的一个元素

127.0.0.1:6379> rpop mylist
"test1"
127.0.0.1:6379> rpop mylist
"test2"
127.0.0.1:6379> rpop mylist
"test3"
127.0.0.1:6379> rpop mylist
(nil)
127.0.0.1:6379>

集合

添加元素到集合:

127.0.0.1:6379> sadd jihe "member1"
(integer) 1

获取集合所有成员:

127.0.0.1:6379> smembers jihe
1) "member1"
127.0.0.1:6379>

管理和维护命令

查看数据库信息:

127.0.0.1:6379> info 

查看连接客户端列表:

127.0.0.1:6379> client list
id=3 addr=127.0.0.1:38112 laddr=127.0.0.1:6379 fd=8 name= age=3098 idle=0 flags=N db=0 sub=0 psub=0 ssub=0 multi=-1 qbuf=26 qbuf-free=20448 argv-mem=10 multi-mem=0 rbs=1024 rbp=0 obl=0 oll=0 omem=0 tot-mem=22298 events=r cmd=client|list user=default redir=-1 resp=2
127.0.0.1:6379>

清空当前数据库

127.0.0.1:6379> flushdb
OK

清空所有数据库

127.0.0.1:6379> flushall
OK

保存数据到磁盘:

127.0.0.1:6379> save
OK

后台异步保存数据到磁盘:

127.0.0.1:6379> bgsave
Background saving started

查看Redis服务器配置:

127.0.0.1:6379> config get parameter
(empty array)
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "0"
127.0.0.1:6379>

http://www.niftyadmin.cn/n/5535823.html

相关文章

推荐一个私有化部署的物联网平台

引言 随着物联网技术的飞速发展,越来越多的企业开始寻求能够提供稳定、安全、可定制的物联网解决方案。私有化部署的物联网平台因其能够满足企业对数据安全和个性化需求的优势,逐渐成为市场的新宠。本文将详细介绍ThingsKit物联网平台,一个专…

React+TS前台项目实战(二十四)-- 全局常用绘制组件Qrcode封装

文章目录 前言Qrcode组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示(pc端 / 移动端) 总结 前言 今天要封装的Qrcode 组件,是通过传入的信息,绘制在二维码上,可用于很多场景,如区块链项目中的区块显示交易地址时就可以用到…

一台TrinityCore服务器客户端连接网速慢(未解决)

在FreeBSD开bhyve安装Ubuntu,然后安装了TrinityCore服务器,在只是经过一层NAT,两边都是局域网的情况下,连接速度竟然很慢,慢到600ms。 服务器安装见:尝试在FreeBSD 的jail、bhyve里安装TrinityCore-CSDN博…

C语言实现地铁线路管理系统 含源码 福利

基本功能 线路信息输入 用户能够输入地铁线路编号和站点信息。例如,第一行输入 “9 35” 表示地铁9号线共有35个站点,站点编号从1至35。第二行输入35个站点名称“songjiangnanzhan zuibaichi songjiangtiyuzhongxin songjiangxincheng songjiangdaxuec…

[Go 微服务] Kratos 验证码业务

文章目录 1.环境准备2.验证码服务2.1 kratos 初始化验证码服务项目2.2 使用 Protobuf 定义验证码生成接口2.3 业务逻辑代码实现 1.环境准备 protoc和protoc-gen-go插件安装和kratos工具安装 protoc下载 下载二进制文件:https://github.com/protocolbuffers/protobu…

将List切割为多个指定长度的多个List

参考: https://blog.csdn.net/baidu_41480640/article/details/122507018https://blog.csdn.net/H1767410/article/details/138333350https://blog.51cto.com/u_16213352/7632003https://blog.csdn.net/2301_82243396/article/details/137900249 手写1 private List<List&l…

偏微分方程笔记(驻定与非驻定问题)

椭圆方程可以看成抛物方程 t → ∞ t\rightarrow\infty t→∞的情况。 抛物&#xff1a; 双曲&#xff1a;

CocoaPodsCmake

https://juejin.cn/post/7257048145233838141?searchId20240531171431E5868B41DC7B7016CCBA https://guides.cocoapods.org CocoaPods CocoaPods的作用 帮助程序员通过命令管理第三方库及更新&#xff0c;以达到扩展项目的目的。 CocoaPods的使用 在已有的工程目录下新增…