Redis简介

40be8305c6584a7291df10a2999b4d31.jpgRedis是基于内存,也可以基于磁盘持久化nosql数据库,使用c语言开发。

 

 

数据存储结构:key-value

 

安装环境准备

Redis使用c语言开发,需要使用gcc编译程序进行编译。

 

1) 安装gcc

 

a) 从磁盘镜像中进行安装:(重启Linux服务器需要重新挂载磁盘镜像)

 

b) 使用yum命令直接从mine.repo文件中本地URL下载

 

c) 挂载命令:mount /dev/cdrom /mnt

 

d) 安装命令:yum -y install gcc

 

2) 安装上传文件插件

 

a) 工具上传文件:(只能上传root目录)

 

b) Alt+P上传文件默认只能上传root目录

 

c) 安装插件:(可以把文件上传任意目录)

 

Rz(lrzsz)

安装命令:yum –y install lrzsz (磁盘镜像中直接安装)

安装redis

上传安装包

使用rz命令上传redis安装包,到/usr/local/hadoop目录下:

 

[root@localhost hadoop]# ll

 

total 144964

 

drwxr-xr-x. 9 root root 4096 Jul 13 01:37 apache-tomcat-7.0.61

 

-rw-r--r--. 1 root root 8816567 May 5 2015 apache-tomcat-7.0.61.tar.gz

 

drwxr-xr-x. 8 uucp 143 4096 Oct 8 2013 jdk1.7.0_45

 

-rw-r--r--. 1 root root 138094686 Jul 13 01:28 jdk-7u45-linux-x64.tar.gz

 

-rw-r--r--. 1 root root 1358081 May 14 2015 redis-3.0.0.tar.gz

 

解压

解压命令:tar -zxvf redis-3.0.0.tar.gz

 

安装redis

1) 编译

 

a) 命令:make

 

b) 进入redis解压目录:执行编译命令。

 

c) 执行编译程序:生成编译文件在src目录下

 

2) 安装

 

a) 命令:make install PREFIX=/usr/local/hadoop/redis

 

b) 进入redis解压目录:执行安装命令

 

[root@localhost redis-3.0.0]# make install PREFIX=/usr/local/hadoop/redis

 

cd src && make install

 

make[1]: Entering directory `/usr/local/hadoop/redis-3.0.0/src'

 

 

 

Hint: It's a good idea to run 'make test' ;)

 

 

 

    INSTALL install

 

    INSTALL install

 

    INSTALL install

 

    INSTALL install

 

    INSTALL install

 

make[1]: Leaving directory `/usr/local/hadoop/redis-3.0.0/src'

 

启动redis服务

 前台启动

启动命令:./redis-server

 

特点:默认启动前台服务,进程一种阻塞,不能直接退出,使用客户端进行登录。

 

 

 

 

 

后台启动

修改redis配置文件,redis.conf配置文件,此时bin安装目录没有配置文件,需要从解压目录中拷贝一份配置文件即可。

 

1) 拷贝redis.conf配置文件

 

a) redis.conf在redis解压目录中

 

b) 拷贝:cp redis.conf ../redis/bin/

 

[root@localhost bin]# ll

 

total 15520

 

-rw-r--r--. 1 root root 18 Jul 26 17:14 dump.rdb

 

-rwxr-xr-x. 1 root root 4587078 Jul 26 17:09 redis-benchmark

 

-rwxr-xr-x. 1 root root 22185 Jul 26 17:09 redis-check-aof

 

-rwxr-xr-x. 1 root root 45403 Jul 26 17:09 redis-check-dump

 

-rwxr-xr-x. 1 root root 4689993 Jul 26 17:09 redis-cli

 

-rw-r--r--. 1 root root 41403 Jul 26 17:16 redis.conf

 

lrwxrwxrwx. 1 root root 12 Jul 26 17:09 redis-sentinel -> redis-server

 

-rwxr-xr-x. 1 root root 6448257 Jul 26 17:09 redis-server

 

 

 

2) 修改redis配置文件

 

a) daemonize no==daemonize yes

 

 

 

3) 启动redis,加载配置文件

 

a) 命令:./redis-server redis.conf

 

4) 登录redis

 

a) 登录命令:./redis-cli –h ip –p port

 

b) 登录:./redis-cli (默认登录6379端口redis服务)

 

 Redis命令

redis是一种高级的key:value存储系统,其中value支持五种数据类型:

 

1.字符串(strings)

 

2.字符串列表(lists)

 

3.字符串集合(sets)

 

4.有序字符串集合(sorted sets)

 

5.哈希(hashes)

 

而关于key,有几个点要提醒大家:

 

1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;

 

2.key也不要太短,太短的话,key的可读性会降低;

 

3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd。

 

 

 

Strings

Redis存储结构是key:value,value是 strings数据类型。

 

命令:

 

语法:set key value

 

1) set name zhangsanfeng

 

a) 给Strings类型key是name 添加一个值。

 

2) get name

 

a) 获取key是name属性的值。

 

3) incr age

 

a) 给数字字符类型自动加1

 

b) 把数字字符类型自动转换成integer类型,然后执行再加上1

 

4) decr age

 

a) 给数字字符类型自动减1

 

b) 把数字字符类型自动转换成integer类型,然后执行减去1

 

5) incrby age 10

 

a) 给指定键值加速10

 

6) decrby age 10

 

a) 给指定键值减去10

 

Hash

Hash是集合类型,适合于用来存储对象。Java集合类型是用来存储对象。

 

存储数据结构分析:

 

第一种数据结构:

 

 

 

存取对象,使用一个key,使用一个key获取一个对象,必须使用反序列化。

 

缺点:

 

占用IO资源。

 

第二种数据结构:

 

 

 

缺点:

 

用户ID被多次使用,数据冗余。资源浪费。

 

第三种数据结构:

 

 

 

Redis存储结构:key是用户ID value:就是hash类型数据。

 

命令:

 

1) hset user username zhaowuji

 

a) 给user中Username属性设置一个值

 

2) hget user username

 

a) 获取User中Username属性的值

 

3) hdel user password …..

 

a) 删除User中属性

 

4) hsetnx user email 123@qq.com

 

a) 如果user中email属性值已经存在,不会覆盖

 

b) 如果不存在,设置值。

 

5) hmset user password 123 age 11

 

a) 同时设置多个值

 

6) Hmget user username age password

 

Lists

List集合数据结构:类似数组,数据是顺序存储。

 

List集合链表结构:通过指针从头指针查询到尾指针查找元素。

 

 

 

命令:

 

 

 

1) lpush mylist a b c d

 

 

 

a) 给list类型数据结构设置多个值

 

 

 

2) lrange mylist 0 -1

 

 

 

a) 获取mylist集合中所有值

 

 

 

b) 0:值链表开始位置

 

 

 

c) -1:链表的结束位置

 

 

 

3) lpop mylist

 

 

 

a) 出栈集合mylist:出栈链表头指针元素。

 

 

 

4) lrem mylist 3 a

 

 

 

a) 删除链表mylist中前3个等于a的值。

 

 

 

5) lset mylist 2 s

 

 

 

a) 给链表mylist集合中2角标位置设置一个值,覆盖原值。

 

 

 

6) linsert mylist after s b

 

 

 

a) 在集合链表mylsit中s元素后面插入一个b

 

 

 

Set

 

 

命令:

 

 

 

1) sadd myset a b c

 

 

 

a) 给set集合myset设置值:a b c

 

 

 

b) Set集合元素值不允许重复

 

 

 

2) smembers myset

 

 

 

a) 获取集合myset中值

 

 

 

3) srem myset a b

 

 

 

a) 删除集合myset中元素

 

 

 

4) smove myset myset1 c

 

 

 

a) 把集合myset中的元素c移动到集合myset1中

 

 

 

 Sorted set

 

 

Set集合:有序集合。

 

 

 

 给set集合中每一元素都设置一个得分,根据得分排序。

 

 

 

 Set集合元素不允许重复,得分可以重复。

 

 

 

设置得分语法:ZADD key score member [score] [member]

 

 

 

命令:

 

 

 

1) zadd mysset 1 one 2 two 12 three 9 four 10 five

 

 

 

a) 给集合mysset集合添加5个元素,每一个元素都设置一个得分。

 

 

 

2) zcount mysset 1 10

 

 

 

a) 获取分数1到10的元素个数,默认是闭区间。

 

 

 

3) zcount mysset (1 10

 

 

 

a) 获取分数1到10的元素个数,左边是开区间(不包含1元素)

 

 

 

4) zcount mysset -inf +inf

 

 

 

a) 获取所有元素

 

 

 

b) –inf:最低值

 

 

 

c) +inf:最高值

 

 

 

5) zrange mysset 0 -1 withscores

 

 

 

a) 获取集合mysset中所有元素

 

 

 

b) 0:头部元素

 

 

 

c) -1表示尾部元素

 

 

 

d) Withscores:查询元素时候,把分数查询出来

 

 

 

6) zrangebyscore mysset 1 10 withscores limit 2 2

 

 

 

a) 根据分数大小来获取元素:

 

 

 

b) Limit分页获取值。

 

 

 

多数据库实例

 

 

Redis支持16个数据库实例,数据库实例角标从0—15,使用redis客户端登录redis服务器,默认登录0号数据库。

 

 

 

登录其他数据库实例:

 

 

 

登录语法:select 数据库实例ID(角标)

 

 

 

登录1号数据库:

 

 

 

127.0.0.1:6379> select 1

 

 

 

OK

 

 

 

127.0.0.1:6379[1]>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30885.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

决策树分类算法

#CSDN AI写作助手创作测评 目录 ID3算法 1.算法原理 2.代码实现 3.ID3算法的优缺点分析 C4.5算法 1.原理 2.优缺点 心得感受 决策树表示方法是应用最广泛的逻辑方法之一,它从一组无次序、无规则的事例中推理出决策树表示形式的分类规则。在决策树的内部…

Java集合详解

集合详解 1、集合,也可以说是容器。由两大接口派生而来,一个是collection,主要用于存储单一元素;另一个是map接口,主要用于存储键值对。 Collection接口 Map接口 2、集合和数组 在之前我们保存多个数据可以使用数组…

Tcl常用命令备忘录-正则命令篇

正则表达式是一种用于匹配、查找、替换文本中特定模式的工具。在Tcl脚本中,可以使用正则表达式对字符串进行匹配、查找和替换。 regexp 语法: regexp ?选项? 正则表达式 字符串 ?变量1 变量2 ...? 其中,?选项?为可选项,…

Spring Security OAuth2授权原理、流程与源码解读

文章目录 前言AuthorizationServerConfigurerAdapter(身份认证服务配置适配器)OAuth2AuthorizationServerConfiguration(OAuth2授权服务配置) EnableAuthorizationServer(开启身份认证服务)AuthorizationServerEndpointsConfigurations身份认证服务站点配置类AuthorizationEndp…

Qt编写精美输入法(历时十年迭代/可换肤/支持Qt4/5/6/win/linux/mac/嵌入式等)

一、前言 大概是从2012年就开始研究用Qt写输入法,因为项目需要,嵌入式板子上,没有对应的输入法,当初使用过很多NVR,里面也是鼠标按下弹出输入法面板进行输入,可以切换数字和字母及中文,于是借鉴…

jmeter如何进行http压力测试

目录 前言: 1、添加线程组: 2、添加采样器: 3、添加监视器 压力测试知识说明 前言: JMeter是一个基于Java的开源压力测试工具,可用于评估Web应用程序的性能,包括HTTP、HTTPS、FTP、SOAP、Restful、JD…

Oracle-高版本SQL优化分析(bind mismatch)

背景: 接到用户报障说一套Oracle19c数据库近期出现insert语句执行变慢的情况,执行一次数据插入需要1秒的时间,而且问题发生的数据库是跑在一体机上面,数据插入正常不应该这么慢,需要分析插入慢的原因 问题: 数据库近期出现insert…

StarRocks 文章收集

StarRocks在58的实践 StarRocks在58的实践 - 墨天轮StarRocks在58的实践 --2022-06-08https://www.modb.pro/db/639611 StarRocks之系统架构 StarRocks之系统架构 - 墨天轮https://www.modb.pro/db/610300 StarRocks小规模集群部署最佳实践(1/2) 0016.S StarRocks小规模集…

2自由度并联仿生腿的制作

1. 运动功能说明 本文实例将实现2自由度并联仿生腿模组运动起来,模拟实现狗腿行走的动作。 2. 结构说明 2自由度并联仿生腿模组是由两个舵机驱动的,它的所有动作都将在两个舵机的配合运动下实现。 3. 运动原理说明 2自由度并联仿生腿模组运动的点位如下…

数据结构-各种树(二叉树、二叉查找树、平衡二叉树、红黑树、B树、B+树)

文章目录 二叉树二叉查找树平衡二叉树红黑树B树B树 二叉树 概念:二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一…

2023 年6月开发者调查统计结果——最流行的技术(1)

2023 年6月开发者调查统计结果——最流行的技术(1) 本文目录: 一、编程、脚本和标记语言 二、数据库 三、云平台 四、网络框架和技术 五、其他框架和库 六、其他工具 七、集成开发环境 八、异步工具 九、同步工具 ​十、操作系统 …

端午出行电脑没网怎么办?无线网卡解决网络问题

无线网卡是一种可以让电脑或其他设备通过无线信号连接网络的硬件设备,无线网卡有多种类型和接口,例如USB无线网卡,PCI-E无线网卡,PCMCIA无线网卡等。端午出行在即,不妨看看驱动人生准备的无线网卡攻略,让大…

基于Python的招聘信息可视化系统,附源码

文章目录 1 简介2 技术栈3 总体设计3.1 系统结构3.2 数据库设计3.2.1 数据库实体3.2.2 数据库表设计 4 运行设计4.1 招聘热门行业分析4.2热门岗位分析界面4.3招聘岗位学历分析界面4.4岗位分布分析界面 5 源码下载 1 简介 基于Python的招聘信息可视化系统,通过对招聘数据进行分…

MFC扩展库BCGControlBar Pro v33.5亮点 - Ribbon Bar等全新升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。 BCGControlBar专业版 v33.5已正式发布了,此版本包含了Ribbon(功能区)自定义…

Linux国产操作系统,UCA-系统工程师学习必备技能,使用dpkg管理软件包、apt命令、内网获取依赖包及源码安装

目录 ​编辑 1.使用dpkg管理软件包 2.apt命令 3.内网获取依赖包 4.源码安装 1.使用dpkg管理软件包 第一种方法当然可以上网搜索软件安装包,下载然后解压成软件。 第二种也就是我接下来要介绍的,dpkg 命令,dpkg 全称叫做debian package…

步长(stride) | 填充(padding) | 扩长(dilation)

这几个名词中文真的好难翻译,不是大佬就不要造名词了,后面还是老老实实用英文吧!(标题是机翻的 。) stride stride 很好理解,stride 就是卷积核移动的步长。 如下图: stride1 stride2 paddi…

技术新动向 | 谷歌云大举扩展安全 AI 生态系统

【本文由 Cloud Ace 整理发布, Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件…

【设计模式】SpringBoot优雅使用策略模式

文章目录 1.概述1.1.简述策略模式 2.实现方法2.1.实现思路2.2.实现代码2.3.策略拓展2.4.执行调用 3.总结 1.概述 本篇文章主要会描述SpringBoot与策略模式的结合使用,因为不涉及到理论部分,所以在阅读本篇之前,需要对策略模式的理论已经有了…

HarmonyOS学习路之开发篇—Java UI框架(JS FA调用Java PA)

JS FA调用Java PA机制 使用兼容JS的类Web开发范式的方舟开发框架提供了JS FA(Feature Ability)调用Java PA(Particle Ability)的机制,该机制提供了一种通道来传递方法调用、处理数据返回以及订阅事件上。 当前提供Ab…

鼠标键盘实验

文章目录 USB参考资料USB设备STM32F407USB 硬件连接软件移植官方HIDSTM32F4USB通信库 USB参考资料 ①《STM32F4xx中文参考手册》-第30章 全速USB on-the-go(OTG_FS) ②光盘:STM32参考资料:STM32 USB 学习资料-CD00289278.pdf(UM1021) ③光盘:STM32参考资…