首页 > 数据库 >Redis介绍与安装

Redis介绍与安装

时间:2022-08-17 18:33:54浏览次数:91  
标签:set name Redis 复杂度 redis 介绍 key 安装 ###

目录

redis介绍安装

介绍

redis 是什么

  1. 是一个软件(用c语言写的,初级版本代码只有1w多行 7.x,公司 5.x,4.x多)
  2. 非关系型(没有外键关联关系)数据库,nosql(not only sql)数据库
  3. 数据都放在内存中
  4. key-value形式存储
  5. 有5大数据类型:string(字符串)、list(数组/列表)、set(集合)、zset(sorted set,有序集合)、hash(哈希类型/字典)

redis 好处

  1. 速度快,因为数据存在内存中,类似于python的字典的优势就是查找和操作的速度快
  2. 支持丰富数据类型,支持string,list,set,sorted set,hash
  3. 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  4. 丰富的特性:可用于缓存(最广泛:缓存数据库),消息,按key设置过期时间,过期后将会自动删除

redis 最适合的场景

  1. 会话缓存:Session Cache
  2. 全页缓存:接口缓存
  3. 队列:程序的解耦,但不是专业的,真正专业的消息队列:kafka,rabbitmq...
  4. 排行榜/计数器:有序集合, 字符串类型做计数器累加(由于6.x之前redis是单线程单进程架构,不存在并发安全问题)

redis 为什么这么快?

  1. 纯内存操作
  2. 使用io多路复用的网络模型(select,poll,epoll模型),epoll模型
  3. 单线程,单进程架构,没有进程线程间切换的消耗

安装

Windows下安装

3.x:Releases · microsoftarchive/redis · GitHub

5.x:Releases · tporadowski/redis · GitHub

image

下载完成后,勾上如图所示的地方,然后剩下的一路下一步就行。

image

安装成功后打开终端,输入:

redis-cli

image

liunx安装

# 安装下载命令
yum install wget
# 下载redis包
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
# 解压
tar -xzf redis-5.0.7.tar.gz
# 进入文件后编译安装
cd redis-5.0.7
make&&make install
# 建立软连接
ln -s  ./src/redis-cli /usr/bin/redis-cli
ln -s  ./src/redis-server /usr/bin/redis-server
"""方式一:最简单的启动"""
# 启动服务
redis-server &
# 启动客户端,不加-h,-p默认为127.0.0.1:6379
redis-cli -h 地址 -p 端口
"""方式二:配置文件启动"""
# 创建一个配置文件,配置文件内容参考redis安装目录下的redis.conf
vi redis.conf
# 配置启动服务端
redis-server redis.conf
# 启动客户端,不加-h,-p默认为127.0.0.1:6379
redis-cli -h 地址 -p 端口
# 有密码的情况两种登陆方式
# 方式一
redis-cli -h 127.0.0.1 -p 6370 -a 123456
# 方式二
redis-cli
auth 123456

# 更改密码
CONFIG SET requirepass 123456 
CONFIG REWRITE  # 把更改保存到配置文件

liunx卸载redis

# 1、查看redis进程;
ps aux|grep redis
# 2、kill掉进程;
kill 进程id
# 4、删除redis对应的文件
rm -f /usr/local/bin/redis*
# 5、删除对应的文件
rm -rf redis-5.0.7

通用命令

####1-keys 
#打印出所有key
keys * 
#打印出所有以he开头的key
keys he*
#打印出所有以he开头,第三个字母是h到l的范围
keys he[h-l]
#三位长度,以he开头,?表示任意一位
keys he?
#keys命令一般不在生产环境中使用,生产环境key很多,时间复杂度为o(n),用scan命令

####2-dbsize   计算key的总数
dbsize #redis内置了计数器,插入删除值该计数器会更改,所以可以在生产环境使用,时间复杂度是o(1)

###3-exists key 时间复杂度o(1)
#设置a
set a b
#查看a是否存在
exists a
(integer) 1
#存在返回1 不存在返回0
###4-del key  时间复杂度o(1)
删除成功返回1,key不存在返回0

###5-expire key seconds  时间复杂度o(1)
expire name 3 #3s 过期
ttl name  #查看name还有多长时间过期
persist name #去掉name的过期时间


###6-type key  时间复杂度o(1)
type name #查看name类型,返回string

### 7 其他
info命令:内存,cpu,主从相关
client list  正在连接的会话
client kill ip:端口
dbsize  总共有多少个key
flushall  清空所有
flushdb  只清空当前库
select 数字  选择某个库  总共16个库
monitor  记录操作日志,夯住

字符串命令

###1---基本使用get,set,del
get name       #时间复杂度 o(1)
set name lqz   #时间复杂度 o(1)
del name       #时间复杂度 o(1)
###2---其他使用incr,decr,incrby,decrby
incr age  #对age这个key的value值自增1
decr age  #对age这个key的value值自减1
incrby age 10  #对age这个key的value值增加10
decrby age 10  #对age这个key的value值减10
#统计网站访问量(单线程无竞争,天然适合做计数器)
#缓存mysql的信息(json格式)
#分布式id生成(多个机器同时并发着生成,不会重复)
###3---set,setnx,setxx
set name lqz  #不管key是否存在,都设置 
setnx name lqz #key不存在时才设置(新增操作)
set name lqz nx #同上
set name lqz xx #key存在,才设置(更新操作)
###4---mget mset
mget key1 key2 key3     #批量获取key1,key2.。。时间复杂度o(n)
mset key1 value1 key2 value2 key3 value3    #批量设置时间复杂度o(n)
#n次get和mget的区别
#n次get时间=n次命令时间+n次网络时间
#mget时间=1次网络时间+n次命令时间
###5---其他:getset,append,strlen
getset name lqznb #设置新值并返回旧值 时间复杂度o(1)
append name 666 #将value追加到旧的value 时间复杂度o(1)
strlen name  #计算字符串长度(注意中文)  时间复杂度o(1)
###6---其他:incrybyfloat,getrange,setrange
increbyfloat age 3.5  #为age自增3.5,传负值表示自减 时间复杂度o(1)
getrange key start end #获取字符串制定下标所有的值  时间复杂度o(1)
setrange key index value #从指定index开始设置value值  时间复杂度o(1)

标签:set,name,Redis,复杂度,redis,介绍,key,安装,###
From: https://www.cnblogs.com/yume-zbh/p/16596339.html

相关文章

  • Docker安装ElasticSearch和Kibana
    1.安装dockerdocker安装参考:https://www.runoob.com/docker/macos-docker-install.html2.拉取elasticsearch镜像dockerpullelasticsearch:7.16.23.启动elasticsea......
  • 开发工具介绍和小程序简介
    开发工具介绍创建项目后会进入项目开发界面。开发工具提供了小程序的开发、调试和代码提交等功能。从上到下,从左到右依次是菜单栏、工具栏、模拟器、编辑器(调试器需要在......
  • redis-数据类型List的安全队列和不安全队列
    在学习RPOPLPUSH命令的时候,官方文档中有提到安全队列和不安全的队列,一开始没有看懂,现在理解了做个笔记。 一般情况下,我们可以借助List来实现消息队列,比如一个客户端通过......
  • .NET Framework 4 安装
    因公司需要在虚拟机上进行开发所以安装运行某些软件的时候需要用到.NETFramework4环境,所以进行大量的百度安装方法方法一:使用官方下载的程序包安装下载地址:h......
  • 安装vue
    一、使用之前,我们先来掌握3个东西是用来干什么的。npm:Nodejs下的包管理器。webpack:它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准......
  • 不需额外安装 npm,Markdown 文章目录生成之 VSCode 编辑器和博客园的完美契合
    博客园支持Markdown语法写入。对于目录生成更是简洁得很,只需要在想要生成目录的地方输入[toc]那么当前文章下的所有的标题将会在当前位置组合为该文章的目录。比如博......
  • Notepad++ 怎么以json格式显示数据 notepad++怎么安装JSON Viewer插件
    Notepad++安装JSONViewer插件,就可以以json格式显示数据,点击插件-->插件管理;  弹出的插件管理窗口,在“可用”栏目的搜索框写入“JSONViewer”会自动搜到该插件......
  • Think PHP框架基础安装6.0
    第一步:点击基础安装tp框架composercreate-projecttopthink/thinktp第二步:点击架构多应用模式拓展composerrequiretopthink/think-multi-app第三步:点击命令行自......
  • redis数据类型篇
    查看库下有多少个key127.0.0.1:6379>dbsize(integer)4查询redis库信息redis没有类似于selectdatabase();这样的查询方式且redis的数据库数量一般默认是16个,在配......
  • Linux下安装宋体和微软雅黑字体
    背景最近工作用itext生成pdf在windows环境下没有出现中文乱码而在linux下出现中文乱码,打开pdf查看pdf编码,以及显示的编码,发现编码并没有对应。原因是使用的宋体和微软雅黑......