Redis之使用

Redis 一、概述 1. 特点

开源的,使用c编写,基于内存且支持持久化

高性能的Key-Value的NoSQL数据库

支持数据类型丰富(字符串string、散列hashes、列表list、集合sets、有序集合sorted)

支持多种语言

2. 区别

MySQL:关系型数据库,表格,基于磁盘,慢

MongoDB:键值对文档型数据库,值为json文档,基于磁盘,慢,存储数据库类型单一

Redis:解决硬盘IO带来的性能瓶颈

3. 应用场景

使用Redis来缓存一些经常被用到或者主要消耗大量资源的内容,通过这些内容放到Redis里面,程序可以快速读取这些内容

一个网站,如果某个页面经常被访问到,或者创建页面时消耗的资源较多,比如需要多次访问数据库、生成时间比较长等,我们可以使用Redis将其缓存起来,减轻网站负担,降低网站延迟

4. 附加功能

持久化

将内存中数据保存到磁盘中,保证数据安全,方便进行数据备份和恢复

发布与订阅

将消息同时分发给多个客户端,用于构建广播系统

过期键功能

为键设置一个过期时间,让他在指定时间内自动删除

事务功能

原子的多个操作

5. 安装 Ubuntu

sudo apt-get redis-server

Windows

前往GitHub下载Windows安装包,Redis官网并没有Windows版本的。

服务配置

将redis.windows.conf重命名为redis.conf,作为redis服务的配置文件

cmd命令行,切换到redis-server.exe目录

redis-server --service-install redis.conf --loglevel verbose

计算机-管理-服务-Redis-启动

卸载

到redis-server.exe所在路径执行

redis-server --service-uninstall

sc delete Redis

CentOS

CentOS安装Redis

二、基本配置 1. 密码配置

进入配置文件,查找requirepass后边加上密码

重启服务sudo /etc/init.d/redis-server restart

客户端连接redis-cli -h 127.0.0.1 -p 6379 -a 123456

ping

2. 允许远程 vim /etc/vim /etc/redis/6379.conf #注释bind 127.0.0.1 ::1 #将protected-mode yes 改为 protected-mode nobash redis-cli -h IP -p 6379 -a passworld 三、数据类型 1. 字符串

特点

字符串、数字,都会转换为字符串来存储

命令

set key value #设置键值对 setnx key value #键不存在时才能设置 #设置过期时间 set key value ex 5 #以秒为单位 expire key 5 #在创建的时候并没有指定时间 mset key1 value1 key2 value2 #一次性设置多个值 mget key1 key2 key3 #同时获取多个值

键的命名规范

利用:层级关系

127.0.0.1:6379> mset zhang:email zhang@163.com li:email li@163.com OK 127.0.0.1:6379> mget zhang:email li:email 1) "zhang@163.com" 2) "li@163.com" 1.1 长度

作用:获取值的长度

命令格式:strlen key

127.0.0.1:6379> get name "danni" 127.0.0.1:6379> strlen name (integer) 5 1.2 替换

setrange key 索引值 value

作用:从索引值开始,value替换原内容(依次替换)

127.0.0.1:6379> set message "hello world" OK 127.0.0.1:6379> setrange message 6 python (integer) 12 127.0.0.1:6379> get message "hello python" 1.3 切片

getrange key 起始值 终止值

作用:获取指定范围内的

127.0.0.1:6379> get message "hello python" 127.0.0.1:6379> getrange message 0 4 "hello" 127.0.0.1:6379> getrange message 0 -1 "hello python" 1.4 拼接

append key "value"追加后边的值

127.0.0.1:6379> set message "hello " OK 127.0.0.1:6379> get message "hello " 127.0.0.1:6379> append message "python" (integer) 12 127.0.0.1:6379> get message "hello python" 1.5 加

incrby key 步长在原来的value上+步长

127.0.0.1:6379> set number 10 OK 127.0.0.1:6379> incrby number 5 (integer) 15 127.0.0.1:6379> get number "15" 1.6 减

decrby key 步长同上,为减法

127.0.0.1:6379> get number "15" 127.0.0.1:6379> decrby number 5 (integer) 10 127.0.0.1:6379> get number "10" 1.7 浮点型

INCRBYFLOAT key value加法,如果value为负数,则为减法

127.0.0.1:6379> get number "18" 127.0.0.1:6379> INCRBYFLOAT number 6.66 "24.66" 127.0.0.1:6379> INCRBYFLOAT number -6.66 "18" 1.8 汇总 #字符串 1、set key value 2、setnx key value 3、get key 4、mset key1 value1 key2 value2 5、mget key1 key2 6、set key value ex seconds # 设置过期时间 7、strlen key #数字操作 8、incrby key 步长 9、decrby key 步长 10、incr key 11、decr key 12、incrbyfloat key number #设置过期时间的两种方式 #方式一 1、set key value ex 3 #方式二 1、set key value 2、expire key 3 #秒 3、pexpire key 5 #毫秒 #查看存活时间 ttl key # 删除过期 persist key 1.9 通用命令 # 查看所有键 keys * # 键类型 type key # 键是否存在 exists key # 删除键 del key # 键重命名 rename key newkey # 返回旧值并设置新值(如果键不存在,就会创建并赋值) getset key value # 清除当前库中的所有数据 flushdb # 清除所有库中的所有数据 flushall 1.10 练习

查看db0中的所有键
select 0
keys *

设置键trill::username 对应的值为user001,并查看
set trill::username user001

获取trill::username 值长度
strlen trill::username

一次性的设置trill::password、trill::gender、trill::fansnumber并查看(值自定义)
mset trill::password 123456 trill::gender boy trill::fansnumber 100

查看键trill::score是否存在
exsits trill::score

增加10个粉丝
incrby trill::fansnumber 10

增加2个粉丝
incr trill::fansnumber
incr trill::fansnumber

减少3个粉丝
decrby trill::fansnumber 3

又有一个粉丝减少
decr trill::fansnumber

清除当前库
fulshdb

清除所有库
fulshall

2. 列表

特点:

元素是字符串类型

列表头尾增删快,中间增删慢,增删元素是常态

元素可重复

最多可包含个元素

索引同python列表

2.1 插入

头尾压入元素

lpush key value1 value2 value3头部压入数据

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxwxg.html