前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式--Redis的安装与数据类型的使用

分布式--Redis的安装与数据类型的使用

作者头像
aruba
发布2022-06-27 13:01:42
2450
发布2022-06-27 13:01:42
举报
文章被收录于专栏:android技术android技术

Redis是一种NoSQL数据库,NoSQL的意思是不仅仅可以使用关系型数据库,由于关系型数据库的数据是存储在文件中,每次操作都是IO操作,而文件的IO操作又是比较缓慢的,NoSQL打破了原先一个表对应表字段,然后再存储数据的方式,将数据以特殊的方式存储,对程序运行效率有显著的提升 目前市面上常见的NoSQL有以下几种:

NoSQL

描述

memcached

内存型数据库,所有数据存储于内存中,以键值对形式存放

Redis

内存型数据库,还具备持久化能力,代价是性能有所降低

HBase

以列作为存储

MongoDB

以Document作存储

一、Redis安装与启动

安装可以直接使用yum

代码语言:javascript
复制
yum install epel-release
yum install redis

由于下面需要模拟多台Redis服务器,需要复制多份Redis,yum方式会直接安装到/usr/bin目录,不方便复制,所以我们以手动编译的方式

1. 安装Redis

Redis使用c语言编写,所以编译需要使用c的编译工具:

代码语言:javascript
复制
yum install -y gcc-c++ automake autoconf libtool make tcl 

官网文档:https://redis.io/docs/getting-started/installation/install-redis-from-source/

代码语言:javascript
复制
wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make

指定Redis安装到/usr/local/redis目录

代码语言:javascript
复制
make install PREFIX=/usr/local/redis

官网首页上也可以下载到编译完的压缩包

2. 配置Redis

回到你解压出Redis的目录,里面有个redis.conf文件,将它拷贝一份到Redis安装目录/usr/local/redis

代码语言:javascript
复制
cp ./redis.conf /usr/local/redis/bin/

修改配置文件中下面的选项:

代码语言:javascript
复制
# 后台方式启动
daemonize yes
# 注释下面bind配置
# bind 127.0.0.1 -::1
# 允许外部访问
protected-mode no
3. 启动Redis

启动时指定使用配置文件

代码语言:javascript
复制
./redis-server redis.conf

二、Redis数据类型

Redis常用五大类型:

类型

描述

使用场景

string

key-value形式存储,是redis最基本的类型,最大存储512MB

所有key-value形式的存储

hash

key-field-value形式存储,一个key可以对应多个field

存储对象

list

有序的字符串列表

消息队列、列表

set

无序集合,内部无重复值,和Java中的HashSet类似

去重、判断是否存在集合中

zset

除了set的特性外,还具有优先级,按照优先级排序,默认优先级为插入顺序

排行榜

三、Redis常用命令

官网文档:https://www.redis.net.cn/order/

下面使用Redis的客户端,来简单使用下命令

代码语言:javascript
复制
./redis-cli
1. 操作string
1.1 set

设置key-value:

代码语言:javascript
复制
set name zhangsan

返回:OK

1.2 get

获取key对应的value:

代码语言:javascript
复制
get name

返回:value值

1.3 setnx

设置key-value,且仅当key不存在时:

代码语言:javascript
复制
setnx name lisi

返回:改变数

1.4 setex

设置key-value,并指定过期时间:

代码语言:javascript
复制
setex name 3 lisi

返回:OK

2. 操作key
2.1 exists

判断key是否存在:

代码语言:javascript
复制
exists name

返回:不存在返回0,存在返回1

2.2 expire

为key设置过期时间,单位秒:

代码语言:javascript
复制
expire name 5

返回:成功 1 失败 0

2.3 ttl

查看key过期剩余时间:

代码语言:javascript
复制
ttl name

返回:过期 -2、永不过期 -1、没过期 剩余时间

2.4 del

删除key对应的key-value:

代码语言:javascript
复制
del name

返回:成功 1 失败 0

3. 操作hash
3.1 hset

设置key-field-value:

代码语言:javascript
复制
hset person name zhangsan
hset person age 18

返回:成功 1 失败 0

3.2 hget

获取key中field对应的值:

代码语言:javascript
复制
hget person name

返回:value值

3.3 hmset

一次性设置多个field-value:

代码语言:javascript
复制
hmset person address beijing gender man

返回:成功 OK

3.4 hmget

一次性获取多个field的值:

代码语言:javascript
复制
hmget person address gender

返回:多个value值

3.5 hvals

获取所有value值:

代码语言:javascript
复制
hvals person

返回:多个value值

3.6 hgetall

获取所有field和value:

代码语言:javascript
复制
hgetall person

返回:多个field和value值

4. 操作list
4.1 rpush

向一个列表末尾中插入一个或多个值,如果列表不存在,则创建

代码语言:javascript
复制
rpush list a b c

返回:成功 列表中元素数

4.2 lpush

向一个列表头中插入一个或多个值,如果列表不存在,则创建

代码语言:javascript
复制
lpush list d e f

返回:成功 列表中元素数

4.3 lrange

返回列表中指定区间内的值,可以用-1代表末尾

代码语言:javascript
复制
lrange list 0 -1

返回:查询到的值

4.4 llen

获取列表长度

代码语言:javascript
复制
llen list

返回:列表长度

4.5 lrem

删除列表中的指定个数的指定value,个数为正,从左往右删除,为负,从右往左删除

代码语言:javascript
复制
lrem list 2 f

返回:删除数量

5. 操作set
5.1 sadd

将一个或多个值插入集合中,重复元素不生效,如果集合不存在,则创建

代码语言:javascript
复制
sadd blacks a b c

返回:插入数

5.2 scard

返回集合元素数量

代码语言:javascript
复制
scard blacks

返回:集合元素数量

5.3 smembers

返回集合中的元素

代码语言:javascript
复制
smembers blacks

返回:集合中所有元素

6. 操作zset
6.1 zadd

向有序集合中添加分数和数据,集合不存在,则创建

代码语言:javascript
复制
zadd rank 10 xiaoming 20 xiaohei

返回:插入数

6.2 zrange

获取指定区间的集合内容,withscores表示带有分数

代码语言:javascript
复制
zrange rank 0 -1
zrange rank 0 -1 withscores

返回:集合内容

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Redis安装与启动
    • 1. 安装Redis
      • 2. 配置Redis
        • 3. 启动Redis
        • 二、Redis数据类型
        • 三、Redis常用命令
          • 1. 操作string
            • 1.1 set
            • 1.2 get
            • 1.3 setnx
            • 1.4 setex
          • 2. 操作key
            • 2.1 exists
            • 2.2 expire
            • 2.3 ttl
            • 2.4 del
          • 3. 操作hash
            • 3.1 hset
            • 3.2 hget
            • 3.3 hmset
            • 3.4 hmget
            • 3.5 hvals
            • 3.6 hgetall
          • 4. 操作list
            • 4.1 rpush
            • 4.2 lpush
            • 4.3 lrange
            • 4.4 llen
            • 4.5 lrem
          • 5. 操作set
            • 5.1 sadd
            • 5.2 scard
            • 5.3 smembers
          • 6. 操作zset
            • 6.1 zadd
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档