Redis的五种数据类型与命令

目录

引言

[一 Redis的特性](#一 Redis的特性)

[二 Redis的安装](#二 Redis的安装)

[三 Redis的优点](#三 Redis的优点)

[四 Redis的五种数据类型与命令](#四 Redis的五种数据类型与命令)

[五 Redis的配置文件](#五 Redis的配置文件)

引言

Redis是什么? Remote Dictionary Service(远程字典服务器)

Redis 是一个开源的(BSD许可)的,C语言编写的,高性能的数据结构存储系统,它可以用作数据库,缓存和消息中间件。它基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一。

官方网站:Redis - The Real-time Data Platform

关系型数据库:支持表结构

非关系型数据库:不是以表结构存储数据

NoSQL,指的是 '非关系型数据库', 'NoSQL有时也称作Not Only SQL的缩写'

NoSQL数据库主要有以下四类,这些类别中的每一个都有其独特的属性和局限性:

基于键值对 key-value类型:Redis, memcached

列存储数据库 Column-oriented Graph: HBase

图形数据库 Graph based: Neo4j

文档型数据库: MongoDB

MongoDB是一个基于分布式文件存储的数据库,主要用来处理大量的文档。

一 Redis的特性

Redis与其他key-value缓存产品有以下三个特点:

1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

二 Redis的安装

以Linux为例:

1.redis官网上下载最新安装包到家目录

Redis 全版本文件地址:Index of /releases/,在其后加上带版本号的包名即可,比如:http://download.redis.io/releases/redis-7.2.4.tar.gz。

通过以下命令下载压缩包

bash 复制代码
wget http://download.redis.io/releases/redis-7.2.4.tar.gz

2.解压压缩包,然后会在家目录下面生成一个对应文件夹redis-7.2.4。

bash 复制代码
tar zxvf redis-7.2.4.tar.gz

3.进入到解压后的目录redis-7.2.4中,然后执行下述命令。

bash 复制代码
cd redis-7.2.4
make
sudo make install

4.进入到utils目录

bash 复制代码
cd utils

5.接着进入到install_server.sh文件,注释掉下面的内容(大约在77行,有8行,shell的注释是以#进行的注释) 注释之后,保存退出并执行下面命令。

bash 复制代码
sudo ./install_server.sh

6.之后一直点Enter键

7.检查安装成功后的命令行

bash 复制代码
redis-cli
# 显示结果如下
127.0.0.1:6739>
ping
# 返回一个PONG

三 Redis的优点

1.性能高 读11w/s 写8.1w/s

2.具有丰富的数据类型(五大数据类型)

3.原子的 操作是原子的,但是redis事务是不支持原子的。

4.丰富的特性,支持发布订阅,通知,支持key过期。

四 Redis的五种数据类型与命令

首先输入 redis-cli

1.string类型

bash 复制代码
#设置命令
set key value
set k1 100
set k3 300

#获取key值
get k1
get k3

#一次性设置多个值
mset k11 11 k12 12 k13 helloworld k14 12.3
#一次性获取多个值
mget k11 k12 k13 k14

#获取字符串的子串   -1表示倒数第一个
GETRANGE k13 0 1
GETRANGE k13 2 5
GETRANGE k13 0 -1

#设置字符串的字串
SETRANGE k13 0 wu

#在获取的同时进行修改
getset k1 hello

#在设置值的同时 加上过期时间 比如将值设为3000 过期时间20s
setex k1 20 3000

#累加
INCR k1   #每次加1个
INCRBY key + 值   #每次可以增加指定的值

2.list数据类型

bash 复制代码
# LPUSH key value1 value2...   RPUSH key value1 value2...
#将一个或多个值插入到头部  尾部  头插法  尾插法
lpush list1 1 2 3 4 5 6  8 9
rpush list2 3 2 1 4 5 6

#lpop rpop  在列表两侧删除元素
lpop list1
rpop list1

# lrange list1 0 -1  范围查找
lrange list1 0 -1

#lset list1 0 888888 修改左边的值
lset list1 0 888888

#redis中list是支持下标的(与STL中list不一样)

#lindex list1 8  按下标访问
lindex list1 8

#删除重复元素(与STL中list中unique不一样,unique需要进行sort)
#LREM list1 5 1  删除掉5个1
LREM list1 5 1

#LTRIM list1 1 4  把1-4范围的数据留下来了  TRIM进行修剪
LTRIM list1 1 4

#LINSERT list1 before | after 2 200 这里的2是在元素2前面或后面 插入200  并不是下标值
LINSERT list1 before 2 200

3.set数据类型

bash 复制代码
#添加元素
sadd myset1 1 2 3 1 2 3 4

#scard myset1 显示元素数量
scard myset1

#smembers myset1 显示元素
smembers myset1

#srandmember myset1 number 随机获取number个数
srandmember myset1 3

#spop myset1 number 随机选取number个元素 并删除
spop myset1 1

#SDIFF key1 key2 出现在key1 不出现在key2的元素
SDIFF myset1 myset2

#SINTER key1 key2 求交集
SINTER myset1 myset2

#SUNION key1 key2 求并集
SUNION myset1 myset2

4.sorted set 即zset数据类型

将每个元素的前面设置一个double分数(看成是权重)

Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但是分数却是可以重复的。

bash 复制代码
#向有序集合添加一个或多个成员 或者更新已存在成员的分数
zadd zset1 10 str1 20 str2 30 str2 40 str4

#ZCOUNT 计算在有序集合中指定区间分数的成员数
zcout zset1 10 40

#ZRANGE 打印数据和分数
ZRANGE zset1 0 1 withscores

#保证元素的分数值一致的情况下面 使用ZRANGEBYLEX命令
#后面是范围值   [闭区间  (开区间   大于等于 小于
#ZRANGEBYLEX myset2 - +  -表示负无穷  +表示正无穷
zadd myset2 10 k1 10 hello 10 world 10 wangdao
ZRANGEBYLEX myset2 [h [k1  #大于等于h 小于等于k1的字符串

#ZCORE 打印指定元素的分数
zscore zset1 str1

5.hash数据类型(重要)

Redis hash 是一个string类型的field(字段) 和value(值)的映射表,hash特别适合用于存储对象

Key-value模式不变,但value是一个键值对

map<key, map<key1, value>>

bash 复制代码
#string类型可以看成是key-value类型,但是hash可以看成是 key1 -(key2-value)
#map<key, value>                          map<key1, map<key2, value>>
#set k1 100
#hset hash1 str1 100

#一次可以获取或者设置多个值
#key-people
hmset people age 10 sex man
#获取people的age sex
hmget people age sex

#hkeys people  获取key
hkeys people
#hvalues people

可以练习一下这些命令

五 Redis的配置文件

最后要给大家介绍的是Redis的配置文件,里面有许多对Redis的配置进行了描述,有兴趣的可以自行阅读一下!

路径:/etc/redis下面会有一个6379.conf

相关推荐
小蜗牛慢慢爬行14 分钟前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger17 分钟前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud39 分钟前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡42 分钟前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷43 分钟前
Redis
数据库·redis·缓存
别这么骄傲1 小时前
lookup join 使用缓存参数和不使用缓存参数的执行前后对比
缓存
仰望大佬0071 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名1 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库
一只路过的猫咪1 小时前
thinkphp6使用MongoDB多个数据,聚合查询的坑
数据库·mongodb