redis查看某一个key的大小_Redis笔记

本文介绍了Redis的基础知识,包括其数据类型、持久化方法(RDB和AOF)、主从复制以及哨兵模式。重点讲解了Redis的String、List、Set、Hash、Zset、Geo、Hyperloglog和Bitmaps等数据类型及其应用场景。同时,文章讨论了Redis的持久化策略,如RDB的快照和AOF的追加操作日志,以及它们的优缺点。此外,还涉及了Redis的主从复制机制和哨兵模式在故障自动恢复中的作用。
摘要由CSDN通过智能技术生成

一、Redis基础

1、简介

remote dictionary server  远程字典服务

C语言编写,基于内存,可持久化的日志型key value数据库。

他会周期性将更新的数据写入磁盘或把修改操作追加到记录文件,且在此基础上实现了主从同步。

2、redis能干嘛

  1. 内存存储,持久化,内存中是断电及失,所以持久化很重要(rdb/aof)

  2. 效率高,用于高速缓存

  3. 发布订阅系统

  4. 地图信息分析

3、redis特性

  1. 持久化

  2. 多样数据类型

  3. 集群

  4. 事务

4、linux安装

1、下载压缩包

wget url

2、复制压缩包到opt目录下

mv reids-6.0.7.tar.gz /opt

3、切换到/opt下并解压redis

cd /opttar -zxvf reids-6.0.7.tar.gz

4、c环境安装

yum install gcc-c++#查看本版,版本过低后续安装会报错gcc -v 

5、安装redis

cd /opt/reids-6.0.7#gcc版本过低make会失败make#确认是否安装成功make install

6、拷贝redis.conf文件到redis安装路径下

# /usr/local/bin为redis默认安装路径,make成功后该路径下会有reids的客户端cd /usr/local/bin#创建目录存放conf文件mkdir rconfig#复制conf文件到rconfig目录cp /opt/redis-6.0.7/redis.conf rconfig

7、修改conf文件

vim rconf/redis.conf#deamonize no 改为 yes#bind 127.0.0.1 改为 0.0.0.0

8、启动redis

cd /usr/local/bin#开启redis服务reids-server rconfig/redis.conf

9、连接测试

#连接redis 默认端口6379 也可以省略redis-cli -p 6379127.0.0.1:6379> ping #连接测试PONG #连接成功127.0.0.1:6379> set key value  127.0.0.1:6379> get key  #获取指定key的值127.0.0.1:6379> keys *   #获取所有的key127.0.0.1:6379> shutdown #关闭redis....> exit               #退出连接

查看redis进程是否开启

ps -ef| grep redis

5、Redis基本知识

开启redis--------

#/usr/local/bin下 rconfig为自定义的文件夹存放redis.confredis-server rconfig/redis.conf

连接redis

#本机可省略-h; port为6379也可省略-predis-cli -h ip -p port

redis默认有16个数据库,默认使用第一个数据库

# 切换数据库 index从0-15127.0.0.1:6379> select index#当前数据库使用大小127.0.0.1:6379> dbsize#清空当前数据库127.0.0.1:6379> flushdb#清空所有数据库127.0.0.1:6379> flushall

redis端口为什么是6379

merz(女明星)九宫格对应数字

redis是单线程的,redis是纯内存数据库,一般都是简单的存取操作

为什么redis单线程还这么快

多线程会产生cpu上下文切换,消耗资源;

redis全程使用hash结构,读取速度快;

基本命令

命令 解释
EXISTS key [key ...] key是否存在
expire key seconds 设置过期时间
ttl key 查看key过期剩余时间
move key db 迁移key
del key 移除key
type key 查看当前key类型

6、redis常见数据类型

基本数据类型:

string、list、set、hash、zset(sorted set)

特殊数据类型

Geospatial地理位置、hyperloglog计数统计算法、bitmaps位存储

6.1 String(字符串)
操作 命令
字符串追加 append  key  value
获取长度 strlen key
key加一(递增)(计数器) incr key
key减一(递减) decr key
设置key增长量 incrby key increment
设置key减少量 decrby key decremen
获取字符串指定范围内容 getrange key start end
获取全部 getrange key 0 -1
字符串内容替换(指定位置开始替换) setrange key offset value
将值 value 关联到 key ,并设置过期时间 setex key  seconds value
key不存在再设置(分布式锁常用) setnx key value
批量set mset key value [key value ...]
批量get mget key [key ...]
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在(原子性) msetnx key value [key value ...]
将给定 key 的值设为 value ,并返回 key 的旧值 getset key value

string存对象

#1、设置user:1对象,值为Json保存set user:1 {name:xls,age=23}#2、属性存入key,方便获取,不用解析json(与hash类似)mset user:1:name xls user:1:age 23
6.2 list(列表)

Redis中list可以当成栈、队列、阻塞队列

所有的list命令都是以L开头

常用命令:

lpush key  element [element ...] 向list中存值(列表头部插入)
lrange key start stop 获取list数据(0 -1全部)
Rpush key element [element ...] 向列表尾部插值
Lpop key 左移除(移除列表第一个元素)
Rpop key 右移除(移除列表最后一个元素)
Lindex key index 通过下标获取值
Llen key 返回列表长度
Lrem key count value 移除指定个数的value
Ltrim key start stop 截取列表
Rpoplpush source destination 移除列表最后一个元素,并放入新的列表
Lset key index element 向列表中指定下标替换(列表必须存在,下标必须存在)
Linsert key before/after pirot value 向列表指定值前/后插入新的值

list实际是个链表,left、right都可插入

消息队列:走进右拿 lpush Rpop

栈:左进左拿 lpush lpop

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值