最近梳理了一下redis的基本知识。本文会从redis的简单使用、redis的数据类型、redis持久化三个方面做简单阐述和总结。

一、Redis基本操作

1、key的规则

不能使用\n空格。其他都可以

2、key操作

exists key 测试制定key是否存在

del key1 key2 删除key

type key 返回给定key的类型

keys pattern 返回模糊匹配 如:keys *

rename oldkey newkey 改名字

dbsize 返回当前库key数量

expire key seconds 给key设定有效时间

ttl key 返回key剩余有效时间

select db-index 切换库
move key db-index 将key从当前库移动到另一个库

flushdb 删除当前库中所有key

flushall 删除所有库中所有key

二、Redis五种数据类型和基本操作

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

1、String类型

string是基本类型。

操作:

set key value 设置值

mset key1 value1 key2 value2 一次设置多个key值

mget key1 key2 key3 一次获取多个key

incr key 自增加一

decr key 自减一

incrby key integer 加integer

decrby key integer 减integer

append key value 追加value

substr key start end 截取字符串。包括start和end

2、list类型

list类型是一个属相链表。通过push,pop操作从链表头或尾进行添加删除操作。使得list既可以用作栈,也可以作为队列。

操作:

lpush key value key头部添加元素

rpop key key的尾部删除元素,并返回删除元素

llen key 对应list的 长度,key不存在返回0,如果key对应的不是list则返回错误。

lrange key start end 返回指定区间元素

rpush key string 尾部添加

lpop key 头部删除

ltrim key start end 截取list,只保留指定区间内元素

lindex key 2 获取key的第一个元素

3、set集合类型

redis的set是Sting类型的无序集合,set元素最大可以包含(2的32次方-1)个元素。

每个集合的元素不能重复。

操作:

sadd key member 添加set集合元素

srem key mamber 移除

smove p1 p2 member 从p1中移除然后添加到p2

scard key 返回set的元素个数

smember key member 判断member是否存在set中

sinter key1 key2 交集

sunion key1 key2 并集

sdiff key1 key2 差集

smember key 查看集合

适用场景:

tom朋友圈有:1 2 3 4 5,doc朋友圈有:2 3 4 5 6,求tom和doc的朋友交集等。

4、sort set排序集合类型

和set一样sort set也是String类型的集合。不同的是没个元素都会关联一个权。

通过权值可以有序的获取集合中的元素

操作:

zadd key score member 添加key。socre权,member值

zrem key member 移除

zincrby key incr member key中的member加incr

zrank key mamber 查看mmber从小到大排名

zrevrank key member 查看mmber从大到小排名

zrange key start end 按照权正排序

zrevrange key start end 按照权反排序

zcard key 查看集合个数

zscore key element 查看给定元素对应的score

zremrangebyrank key min max 删除集合中给定区间的元素

适用场景:

获得热点帖子信息等。

5、hash类型

操作:

hset key field value 设置hash值

hget key field 获取key

*hmget key field1 field2.. 获取指定key值

*hmget key field1 value1 .. 同时设置多个值

hinrcby key field integer 指定值增加

hexists key field 是否存在

hdel key field 删除

hlen key 获取field的数量

hkeys key 获取所有field

hvals key 获取所有value

*hgetall key 获取所有field和value

三、Redis持久化

redis重启时会把数据放在硬盘一份儿,重启后再拷贝回来。

1,snap shotting快照持久化

一次性把redis中全部数据保存一份在硬盘中,数据大时不适用。

2,append only file(AOF持久化)

appendfsync always 每次写命令都强制写入磁盘

appendfsync everysec 每秒

appendfsync no 依赖os,cpu闲的时候才写入磁盘

操作:

bgsave 异步保存数据到磁盘(快照保存)。

lastsave 返回上次成功保存到磁盘的unix时间戳

shutdown 同步保存到服务器并关闭redis服务器

bgrewriteaof AOF备份文件优化处理:对appendonly.aof优化压缩。

如:./redis-cli bgrewriteaof

./redis-cli -h 127.0.0.1 -p 6379 bgsave 手动发起快照

主从配置

redis.conf中:slaveof IP PORT

redis知识点杂记的更多相关文章

  1. [转帖]redis知识点总结

    redis面试常问知识点总结 https://www.toutiao.com/i6740199554127233543/ 原创 波波说运维 2019-10-02 00:01:00 概述 今天主要分享一 ...

  2. redis知识点及常见面试题

    redis知识点及常见面试题 参考: https://zm8.sm-tc.cn/?src=l4uLj4zF0NCIiIjRnJGdk5CYjNGckJLQrIqNiZaJnpOWjIvQno2Llpy ...

  3. redis 知识点收集 注意理解底层

    学redis,首先要明白其特性,其次要理解明白redis与操作系统底层的关系,这点很重要.这是一个优秀的学习方法,作为计算机专业,应当时刻想着技术和操作系统计算机组成数据结构的联系,听起来有些书生气死 ...

  4. 【面试】吃透了这些Redis知识点,面试官一定觉得你很NB(干货 | 建议珍藏)

    万字长文,干货满满. 是数据结构而非类型 很多文章都会说,redis支持5种常用的数据类型,这其实是存在很大的歧义.redis里存的都是二进制数据,其实就是字节数组(byte[]),这些字节数据是没有 ...

  5. redis知识点汇总

    1. redis是什么 2. 为什么用redis 3. redis 数据结构 4. redis中的对象类型 5. redis都能做什么?怎么实现的的? 6. redis使用过程中需要注意什么 7. 数 ...

  6. redis知识点

    为什么使用 ①解决应用服务器的cpu和内存压力 ②减少io的读操作,减轻io的压力 ③关系型数据库的扩展性不强,难以改变表结构 优点: ①nosql数据库没有关联关系,数据结构简单,拓展表比较容易 ② ...

  7. redis 知识点

    默认端口  6379 单个value 最大可以保存1G 默认RDB(异步刷盘方式) 禁用持久化修改redis.conf,找到save配置,改为save "" 即可 1. 特点 Re ...

  8. Redis知识点总结

    1.单线程 单线程模型来处理客户端的请求,对读写等事件的相应是通过对epoll函数的包装来做到的,Redis的实际处理速度完全依靠主线程的执行效率. Epoll是Linux内核为处理大批量文件描述符而 ...

  9. Redis散杂记

    Redis是一款很火的KV模式的内存数据库,与众不同的特点: 1.数据存储在内存 内存的读取速度仅次于CPU的寄存器.各等级缓存,“英雄”自动敏捷属性,特点就是快.高效.因此不需要类似存储磁盘的数据库 ...

随机推荐

  1. Python学习:模块初识、数据类型

    1.模块初识 在Python中,模块分为两种: (1)标准库 标准库无需安装,只要在使用的时候import就可以使用了 (2)第三方库 第三方库必须下载安装之后才能够引入使用 下面介绍两个基本的模块: ...

  2. .NET MVC 控制器和行为

    行为就是可访问方法(public) 行为返回类型必须是 ActionResult 或者其派生类,基本上返回类型为以下四种之一 View(视图路径) Json(对象或者对象集合) Content(字符串 ...

  3. Java 8 方法引用

    转自:https://www.runoob.com/java/java8-method-references.html 方法引用通过方法的名字来指向一个方法. 方法引用可以使语言的构造更紧凑简洁,减少 ...

  4. win7频繁提示资源管理器已停止工作解决办法

    方法一,重新启动资源管理器,右键点击桌面下方的“任务栏”空白区,在弹出的菜单栏中选择“任务管理器”.   进入任务管理器,点击上方的“文件”,选择新建任务.   在弹出的对话框中,输入explorer ...

  5. spring和springmvc配置分离

    在配置springmvc的时候,我们可以把所有配置配置到springmvc的xml文件中, 也可以分多个 Spring 的配置文件, 然后使用 import 节点导入其他的配置文件. 但是,通常情况下 ...

  6. DOM 节点node

    DOM可以将任何HTML或XML文档描绘成一个有多层节点构成的结构,即在HTML中所有内容都是节点.文档节点是每个文档的根节点,文档节点有一个子节点,称为文档元素.每个文档只能有一个文档元素.在HTM ...

  7. List Set Map的区别

    1.读取频繁选用List 快速访问选取ArrayList,经常进行添加删除工作可以选用LinkList 2.如果你想进行有序的插入那么还是选型List,因为List是一个有序的容器 3.如果你想保证插 ...

  8. Linux LVM磁盘管理

    几个概念: PV:物理卷,指LVM的基本逻辑卷,包含LVM的基本参数,如/dev/sdb1等. VG:卷组,类似于非LVM的硬盘,由多个PV组成. LV:逻辑卷,类似于非LVM硬盘中的分区. PE:物 ...

  9. 命令实现linux和客户端文件上传下载

    1.rz/sz命令 linux端使用rz/sz实现和windows客户端 linux服务器需要装了rz,sz yum install lrzsz 当然你的本地windows主机也通过ssh连接了lin ...

  10. robotframework手机号随机产生脚本

    首先,要导入使用库 random; ${phone} Evaluate random.choice(['139','188','185','136','158','151'])+"" ...