redis知识点杂记

最近梳理了一下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

时间: 2024-10-03 16:23:50

redis知识点杂记的相关文章

EasyUI知识点杂记

1.easyui获取datagrid分页组件的当前pageSize和pageNumber方法: var grid = $('#grid'); var pager = grid.datagrid('getPager'); var pageOpts = pager.data('pagination').options; var pageSize = pagerOpts.pageSize; var pageNumber = pagerOpts.pageNumber; EasyUI知识点杂记,布布扣,b

redis知识点及常见面试题

redis知识点及常见面试题 参考: https://zm8.sm-tc.cn/?src=l4uLj4zF0NCIiIjRnJGdk5CYjNGckJLQrIqNiZaJnpOWjIvQno2LlpyTmo zQx87OxsfGztGXi5KT&uid=c9712557c9cde8bef666f89d1d708c67&hid=40c90f91312807e0fc0320b8ae fa07f7&pos=2&cid=9&time=1532475858864&fr

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

原文:[面试]吃透了这些Redis知识点,面试官一定觉得你很NB(干货 | 建议珍藏) 万字长文,干货满满. 是数据结构而非类型 很多文章都会说,redis支持5种常用的数据类型,这其实是存在很大的歧义.redis里存的都是二进制数据,其实就是字节数组(byte[]),这些字节数据是没有数据类型的,只有把它们按照合理的格式解码后,可以变成一个字符串,整数或对象,此时才具有数据类型. 这一点必须要记住.所以任何东西只要能转化成字节数组(byte[])的,都可以存到redis里.管你是字符串.数字.

Redis知识点总结2

1.Redis作用:(据我自己理解)Redis 是非关系型数据库,存储主要是以key value形式.当对Redis中的数据进行操作的时候,是在内存里面,最后会把内存中的数据存在硬盘里面.所以,这就是他的邮电,既是持久化的数据库,就是在内存中运行的数据.但是有个缺点,就是不适合大量的数据存储,毕竟是在内存里面进行的操作. 2.Redis下载:下载地址:https://github.com/MSOpenTech/redis/releases 3.Redis安装: (1).把下载下来的压缩包解压到一

[转帖]redis知识点总结

redis面试常问知识点总结 https://www.toutiao.com/i6740199554127233543/ 原创 波波说运维 2019-10-02 00:01:00 概述 今天主要分享一下面试常被问到的一些redis知识点. 1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据fl

Redis知识点汇总

一.知识大纲 1.  redis介绍 a) redis应用场景 2.redis客户端 a) redis自带客户端 b) Java客户端jedis(重点) 3.  Redis数据类型(重点) a) String类型 b) Map类型 c) List类型 d) Set类型 e) SortedSet 5.  Keys命令(了解) 6.  Redis的持久化方案 a) Rbd方式 b)  Aof方式 7.  Redis的主从复制 8.  Redis的集群(重点) 9.  Jedis连接redis集群 1

redis知识点

1.持久化 redis支持持久化,通过持久化机制将内存中的数据存到硬盘,重启后将数据从硬盘加载到内存 存储方式:a.RDB存储数据的快照      b.存储执行的命令 2.存储的数据类型 string,hash,list,set(无序),zset(有序,给每个数值都加了个权重) 3.单线程 redis都是基于内存操作 采用单线程,避免了不必要的上下文切换和竞争条件 使用多路I/O复用模型,非阻塞IO: 4.redis和memcached a.memcached的数据全部存在于内存中,断电后会挂掉

javascript知识点杂记

1 for(var i = 0; i < 10; i++) { 2 setTimeout(function() { 3 console.log(i); //输出10个10,因为setTimeout方法是异步的,当执行到setTimeout时,for循环已经执行完毕,i变量值为10 4 }, 1000); 5 } 1 for (var i = 0; i < 10; i++) { 2 (function(a) { 3 // 变量 i 的值在传递到这个作用域时被复制给了 a, 4 // 因此这个值就

小知识点杂记(有点乱)

document.charset 进入网站的开发者模式,在console终端下,输入该命令,查询网站的编码格式 HTTP服务默认端口是80,HTTPs默认端口是443 400 网页不存在或请求参数语法有误 401 账户无访问权限 403 网站没有绑定默认首页或者绑定默认首页错误 404 访问的资源不存在,服务宕机 500 服务器内部错误 502 网关错误,服务宕机 503 由于临时过载或维护,服务器无法处理请求 10种检测Python程序运行时间.CPU和内存占用的方法 源文档 https://