redis基础

@【toc】目录

#一、Redis概述:

#1.目的:

#2.介绍:

#二、Redis 安装以及初始操作

#1.安装Redis数据库:

#2.Redis 初始操作

#3.Redis 数据存储操作

#4.key 有效时间设计

 #三、Redis 常用数据类型

#1.String 类型操作实践

#2.Hash 类型应用实践

#3.List类型应用实践 

#4.Set类型应用实践

#一、Redis概述:
#1.目的:
 在Tomcat服务器上增加本地缓存,并在外部增加分布式缓存,缓存热门数据。通过                         缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。

#2.介绍:
Redis是一个key-value存储系统(官网:http://redis.io),是一个分布式缓存数据库。

#二、Redis 安装以及初始操作
#1.安装Redis数据库:
第一步:下载镜像文件 : docker pull redis

第二步:准备配置文件

创建redis配置文件目录

mkdir -p /usr/local/docker/redis01/conf
在配置文件录下创建redis.conf配置文件(这个文件一定要创建,否在我们进行目录挂载时默认生成的是一个目录)

touch /usr/local/docker/redis01/conf/redis.conf
第三步:创建redis实例并启动

sudo docker run -p 6379:6379 --name redis01 \
-v /usr/local/docker/redis01/data:/data \
-v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf 
第四步:查看正在运行的进程  : docker ps

#2.Redis 初始操作
启动redis服务 : docker  start  redis     (start单词后的redis为容器名)

查看启动的redis进程信息  :ps  -ef | grep  redis

进入redis 容器  :   docker  exec  -it  redis01  bash     (redis01为容器名)

登陆redis服务

redis-cli
或者
redis-cli -p 6379
或者
redis-cli -p 6379 -a  password #-a后面为password,此操作需要开启redis.conf文件中的 requirepass选项
 
登陆远程redis

redis-cli -h "ip地址" -p 6379 
查看redis信息 : 127.0.0.1:6379> info #查看当前redis节点的详细配置信息

清楚redis 屏幕内容:  clear

退出redis 服务:  exit

关闭redis 服务:  shutdown (关闭前自动保存内容到指定文件)

系统帮助:  help  &  help type

#3.Redis 数据存储操作
查看redis 中的key :  keys *

基于key/value形式存储数据:  set test1 123

基于key获取redis中存储的数据: get test1

清除当前数据库数据: flushdb

清除所有数据库数据 : flushall

#4.key 有效时间设计
Expire (设置生效时长-单位秒):EXPIRE key seconds 

       例、第一步.set bomb tnt     第二步.expire bomb 10

Persist (取消时长设置)  : persist bomb

pexpire (毫秒):pexpire 让key的生效时长以毫秒作为计量单位,可以做到更精确的时间控制

       语法:PEXPIRE key milliseconds       例:pexpire bomb 10000

 #三、Redis 常用数据类型
#1.String 类型操作实践
简介:字符串类型是redis中最简单的数据类型,它存储的值可以是字符串,其最大字符串长度支持到512M。基于此类型,可以实现博客的字数统计,将日志不断追加到指定key,实现一个分布式自增iid,实现一个博客的的点赞操作等

incr / incrby :   当存储的字符串是整数时,其作用是让当前键值递增,并返回递增后的值。

例:1.set num 1   2.incr  num(值返回2) 3.incryby  num  2 (语法可以指定每次自增的值为2)

注:如果num不存在,则自动会创建,并且完成自增

decr / decrby :  decr每次递减1    decrby  key  decrement  按照指定数值递减

例: 1.set num 9  2. decr  num     3.decrby  num  3

append :向尾部追加值。如果键不存在则创建该键 。返回值是追加后字符串的总长度。

 语法:append  key  value     例:append   test  "abc"   (test为key字段名)

strlen : 字符串长度,返回数据的长度,如果键不存在则返回0。

语法: strlen  key        例:strlen  test      (test为key)

mset / mget :    同时设置 / 获取多个键值

例:1. mset  a  1  b   2  c  3               2.mget   a  b   c       (结果为1,2,3)

#2.Hash 类型应用实践
简介:Redis散列类型相当于Java中的HashMap,实现原理跟HashMap一致,一般用于存储对象信息,存储了字段(field)和字段值的映射,一个散列类型可以包含最多232-1个字段。

hset / hget :

语法结构: hset key field value / hget  key  field

注:hset命令不区分插入和更新操作,执行插入操作时hest命令返回1,当执行更新操作时返回0。

hmset/hmget :   hmset  key  field  value[field  value...] / hmget  key  field [field...]

           注:   hgetall  key  field   (获取当前field的所有value)

hincrby :     自增

语法:hincrby  article  total   5    (hincrby   key   field  value)

hexists:  判断属性是否存在

例: hexists  user  username

hdel:  删除属性 

例: hdel  user  age

 hkeys / hvals :  只获取字段名hkeys 或 字段值hvals

例:hkeys  person        /        hvals   person

#3.List类型应用实践 
简介:Redis的list类型相当于java中的LinkedList,其原理就就是一个双向链表。支持正向、反向查找和遍历等操作,插入删除速度比较快。经常用于实现热销榜,最新评论等的设计。

lpush : 在key对应list的头部添加字符串元素

例: lpush mylist "world"     (mylist为key,world为要添加的字符串)

注:其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推

rpush : 在key对应list的尾部添加字符串元素

例: rpush mylist2 "hello"

del: 删除 

例: del mylist

linsert: 在key对应list的特定位置之前或之后添加字符串元素

 例:linsert mylist3 before "world" "there"  (将there 添加到 world之前)

lset :设置list中指定下标的元素值(一般用于修改操作)

 例:lset mylist4 0 "four"   (将第一个元素的值改为four)

lrem : 从key对应list中删除count个和value相同的元素,count>0时,按从头到尾的顺序删除

例: lrem mylist5 2 "hello"   (从mylist5中删除2个与hello相同的元素)

 ltrim : 保留指定key 的值范围内的数据

例 : ltrim mylist8 1 -1   (保留mylist内第二个至倒数第一个之间的数据)

lpop : 从list的头部删除元素,并返回删除元素

例 :  lpop mylist   从mylist头部删除元素,并将所删除元素返回

rpop : 从list的尾部删除元素,并返回删除元素

例: rpop mylist2

llen : 返回key对应list的长度

例: llen mylist5

lindex : 返回名称为key的list中index位置的元素

例 :  lindex mylist5 0      返回mylist5中的第一个元素

rpoplpush : 从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值.如果第一个list是空或者不存在返回nil

例:rpoplpush  lst1  lst2    将lst1尾部元素移除并且添加到lst2的头部位置

#4.Set类型应用实践
简介:Redis的Set类似Java中的HashSet,是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

sadd : 添加元素,重复元素添加失败,返回0

 例:sadd name tony

smembers : 获取内容

例: smembers  name

spop : 移除并返回集合中的一个随机元素

例:spop internet     

scard : 获取成员个数

例 :scard  name

smove :  移动一个元素到另外一个集合

例:smove bigdata internet rabbitmq   从bigdata中移动元素rabbitmq到internet中

sunion : 并集

例 : sunion internet bigdata
————————————————
版权声明:本文为CSDN博主「大小不少年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangzhanpu/article/details/120088222

对于学习Redis基础知识,可以按照以下思路进行学习: 1. 了解Redis的概念和特点:首先需要了解Redis是什么,它的主要特点是什么,它为什么被广泛应用于缓存、消息队列、会话管理等场景。 2. 安装和配置Redis:根据你的操作系统,安装Redis并进行相关配置。可以参考Redis官方文档或其他教程来完成这一步。 3. 学习Redis的数据结构:Redis支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。了解每种数据结构的特点、用途和操作命令,并通过实际操作来加深理解。 4. 掌握Redis的常用命令:学习Redis的常用命令,如get、set、hget、hset、lpush、lrange、sadd、smembers等,了解每个命令的具体用法和参数含义。 5. 理解Redis的持久化机制:了解Redis的RDB和AOF两种持久化方式,以及它们的优缺点。学习如何进行备份和恢复数据。 6. 学习Redis的事务和Lua脚本:了解Redis事务的基本概念和使用方法,以及如何使用Lua脚本来进行复杂的操作。 7. 深入了解Redis的性能优化和高可用方案:学习如何优化Redis的性能,包括配置调优、使用合适的数据结构、合理地使用缓存等。同时了解Redis的高可用方案,如主从复制、哨兵模式和集群模式。 8. 学习Redis与其他技术的结合:了解Redis如何与其他技术进行结合,如与Python、Java等编程语言的配合使用,以及与Spring、Django等框架的整合。 以上是学习Redis基础知识的一个思路,你可以根据自己的实际情况和需求进行学习和拓展。推荐参考一些经典的Redis教程和实战案例,通过实际操作和项目实践来提升自己的技能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值