Redis基本安装与使用

本文深入探讨了Redis作为内存存储服务器在数据库、缓存和消息队列中的关键作用,涵盖了安装、基本命名操作,以及其在热点数据处理、实时信息查询和分布式共享中的实际应用。Redis的工作原理和五种核心数据类型,如字符串、哈希、列表、集合和有序集合,都进行了详细讲解。
摘要由CSDN通过智能技术生成

目录

一、Redis的介绍

二、Redis的原理

三、Redis的安装

四、Redis的基本命名


一、Redis的介绍

          1、定义:   Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

          2、用途:1. 数据库 2. 缓存    

          3、应用场景:

               3.1热点数据加速查询(主要场景),如热点商品、热点信息等访问量较高的数据

               3.2即时信息查询,如公交到站信息、在线人数信息等

               3.3时效性信息控制,如验证码控制、投票控制等

               3.4分布式数据共享,如分布式集群架构中的session分离消息队列

二、Redis的原理

          接下来我将用一张图为大家讲解Redis的工作原理:

大家可以想一下,在每年的双十一以及双十二中,淘宝平台的访问量以及商品的浏览量是非常大的,大的几乎难以让人想象,这时候数据就会出现宕机(意思可以认为是死机)的现象,这时总数据库有两个做法,一种是生产集群数据库,减少自己的压力,

 另一种做法就是使用Redis缓存,首先服务器先到缓存中拿取数据,如果缓存中有数据的话就将数据取出,没有数据的话,Redis就到数据库中取到数据,并且会考虑这是不是自己想要的数据,如果要的话就会取到,不要的话就不会取用,取用了之后供访问者使用。

三、Redis的安装

1、下载Redis压缩包,解压redis

2、安装gcc

3、编译redis

4、检测安装情况

5、修改redis.conf文件

6、启动redis

7、测试redis启动是否成功

8、配置成系统服务

9、重载系统服务

10、启动redis

1、下载Redis压缩包,解压redis

       $ tar -zxvf redis-5.0.0.tar.gz -C /usr/local/
       $ tar -zxf redis-5.0.0.tar.gz -C /usr/local/
             -zxf 静默解压方式
       $ cd redis-5.0.0(这里为压缩包的版本

2、安装gcc

yum install gcc

3、编译redis

make

4、检测安装情况(注意:如果在这一步出现了报错了,在此时就要执行一下命名,yum install -y tcl-devel,make distclean两个命名分开执行)如下图所示:

make install

 5、修改redis.conf文件(在这里需要注意的是,这里修改要修改三处,都是在redis.conf文件中,)

将daemonize no 改为 daemonize yes (在136行)

将 NETWORK 下 bind 127.0.0.1 注释掉(在55行)
并将 protected-mode  yes    改为 protected-mode  no;(在88行)

6、启动redis

查看redis进程:ps -ef | grep redis
杀掉redis进程:kill -9 进程pid

7、测试redis启动是否成功

 ping

 8、配置成系统服务

新建redis.service文件,配置成系统服务
vi /usr/lib/systemd/system/redis.service

(新建之后就将redis.service中的内容copy到上述文件夹中(下列文字中红色字为自己创建的路径 我自己的路径如下图所示)

[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/lky/redis-5.0.0/src/redis-server /lky/redis-5.0.0/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID 
PrivateTmp=true

[Install]
WantedBy=multi-user.target

) 

这里拓展一下,vi是指新建一个文件夹,还可以进行编辑

而vim不新建文件夹,但是可以进行编辑

9、重载系统服务

systemctl daemon-reload

10、启动redis

systemctl start redis  #启动redis服务
systemctl stop redis   #停止redis服务
systemctl status redis #查看redis状态
systemctl restart redis #重启redis服务
systemctl enable redis #注册服务
systemctl disable redis #注销服务

          

四、Redis的基本命名

首先要进入到redis客户端:redis-cli -h 127.0.0.1 -p 6379(redis端口号) -a 123456(密码)

           1、redis支持五种数据类型

               string(字符串)hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)

          2、基本命名:

           1、ttl  key查看当前过期时间

           2、type key 查看当前键的类型

           3、exists key 是否存在这个键

           4、expire key seconds设置键过期时间

           5、select n 选择数据库

           6、keys * 查看所有键 

           7、flushall 清空所有内容

           8、flushdb 清空当前库

          3、string字符串:

1、常用命名:

          set key           //保存
          get key           //获取
          type key         //查看类型
          keys *或keys key //查看所有或者指定的key

          append key value 追击内容

          incr key进行自增+1

          decr key进行自减-1

          incrby/decrby key increment  指定长度变化

          getrange  key start end指定返回取值

          setex key  second value 设置过期时间

          setnx key value  key  不存在创建,存在则创建失败   

          mset key1 v1 key2 v2 key3 v3  批量创建key

          msetnx key1 v1 key2 v2 key3 v3 msetnx原子性操作,要么一起成功,要么一起失败

       

2、常用使用场景:

      2.1缓存结构体信息:存储JSON数据

      2.2计数功能:实时计数统计场景,库存场景,限流计数

      2.3session共享

          4、hash哈希类型:

1、常用命名:

键值对对象,类似HashMap,命名都是以h开头

hset key filed value 设置hash对象的属性键值对

HGET key field 获取对应键的属性值

HGETALL key 获取该键盘上所有属性

HEXISTS key field 判断属性是否存在

HMSET key field value [field value]多属性赋值

HSETNX key field value不存在则赋值

          5、list链表(双向链表)

1、常用命名:

   有序的value可以重复,可以通过下标取出对应的value值

   list类型的前后插入和删除速度非常快的,但是随机定位速度非常慢

   1、lpush  key value [value ...]

   2、lpop key 从左边取值(取完值后该值就消失了)

   3、rpush key  value [value  ....]从右边值

   4、rpop key  从右边拿出值

   5、遍历操作: lrange key start stop 从左边开始遍历

2、常用使用场景:

           6、set集合

1、set集合介绍:

1、不允许有重复的元素

2、集合中的元素是无序的,不能通过索引下标获取元素

3、支持集合间的操作,可以取多个集合取交集、并集,差集

2、常用命名:

1、命名都是以s开头

2、sadd key member [member ...]添加值

3、smembers  key 拿值

4、sismember key member 判断该值是否存在

5、srem key member  [member...]  移除值

6、scard key 查看长度

3、常用使用场景:

          7、zset有序集合 

1、zset有序集合介绍:

类似于java的sortedSet和hashmap的结合体,一方面它是一个set啊,保证了内部value的唯一性,另一方面他可以给每一个value赋予一个score,代表这个value的排序权重,zset内部是通过跳跃列表这种书数据结构来实现的,因为zset要支持随机的插入和删除,所以不能使用数组结构,而需要改成普通链表数据结构,zset需要根据score进行排序,所以每次插入或者删除值都需要进行先在链表上查找定位

2、常用命名:

1、zadd key score member [score] [member]添加内容

2、zrange key start stop [withscores] 遍历内容

3、zscore key member 查看score权重

3、常用使用场景:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值