• 环境: centos

一、安装

  1. sudo su
  2. cd
  3. wget http://labfile.oss.aliyuncs.com/courses/106/redis-2.8.4.tar.gz
  4. tar -xzvf redis-2.8.4.tar.gz
  5. cd redis-2.8.4
  6. make

几个文件:

  • 服务端:src/redis-server
  • 客户端:src/redis-cli
  • 默认配置文件:redis.conf
  1. # 设置环境变量
  2. cp redis-server /usr/local/bin/
  3. cp redis-cli /usr/local/bin/
  4. # 运行测试
  5. cd /root/redis-2.8.4
  6. make test
  7. # 启动redis-server
  8. redis-server

二、服务命令

  1. 使用服务启动redis服务: sudo service reids-server start
  2. 查看redis状态 : ps -ef | grep redis , netstat -nlt|grep 6379
  3. redis-cli 交互环境乱码: redis-cli --raw

三、数据类型

帮助命令

  1. help set # 查看set命令的帮助

1. string

  • set key value: 创建
  • get key: 索引
  1. $ sudo service redis-server start
  2. $ sudo su
  3. $ cd
  4. $ redis-cli
  5. > set mykey somevalue
  6. > get mykey

加法器

  1. > set counter 100 # 初始化
  2. > incr counter # +1
  3. > incr counter # +1
  4. > incrby counter 50 # +50 自定义计数
  • incr 让value成为一个整数, 并加法
  • decr decrby 减法
  1. > mset key1 value1 key2 value2 # 批量创建
  2. > mget key1 key2 # 批量索引

2. lists

线性有序

如列表 mylist

  1. # push 操作
  2. > rpush mylist A # 插入元素到尾部
  3. > rpush mylist B
  4. > lpush mylist first # 插入新元素到头部
  5. > lrange mylist 0 -1 # 索引, 0 是第一个, -1是倒数第一, -2 是倒数第二...
  6. # pop 操作, 弹出(删除)
  7. > rpop mylist # 从右边弹出一个元素
  8. > lpop mylist # 从左边弹出一个元素
  9. > del mylist # 删除

list 存在阻塞

3. hashes(散列)

字符串字段和字符串值之间的映射;

  1. > hmset user:1000 username xiaoming birthyear 2019 verfied 1
  2. # 创建一个多域的hash表
  3. > hget user:1000 username # 获取指定单域
  4. > hget user:1000 birthyear
  5. > hgetall user:1000 # 获取key的所有信息
  6. > hincrby user:1000 birthyear 10 # 修改增加了10

4. 无序集合 set

不允许宝行相同的成员的属性(非常方便去重);

以O(1)时间复杂度完成添加删除及测试元素是否存在

  1. > sadd myset 1 2 3 # 创建一个无序集合myset
  2. > sismember myset # 查看集合是否存在, 成功1,失败0

5. 有序集合

无重复元素的字符串集合, 不同之处是有序集合每个成员都关联了一个权值;

成员唯一, 但权值可重

  1. > zadd hackers 1990 "a"
  2. > zadd hackers 1995 "df"
  3. > zadd hackers 1900 "ddz"
  4. > zrange hackers 0 -1 # 查看
  5. > zreverange hackers 0 -1 # 反序查看
  6. > zrange hackers 0 -1 withscores # 返回记录值

四、常用命令

  1. exists and del
  • exists key: 判断 key是否存在 存在1, 否0;
  • del key: 删除key, 成功1,失败0(key不存在)
  1. type and keys
  • type key: 返回元素数据类型(string,list, set, zset,hash)
  • keys key-pattern: 返回匹配key的列表, 如 keys ming* (返回以ming开头的keys)
  1. randomkey and clear
  • randomkey: 随机获取一个已存在的key
  • clear: 清除界面
  1. rename and renamenx
  • raname oldname newname: 重命名; newname存在则会覆盖
  • renamenx oldname newname: 重命名; newname存在则失败
  1. dbsize
  • dbsize: 返回key总数

五、时间相关命令

  1. 限定key生存时间
  • expire key seconds
  1. 查询key剩余生存空间
  • ttl key
  1. 清除key
  • flushdb: 清空当前库中的所有键
  • flushall: 清空所有库中的所有键

六、设置相关命令

redis配置文件

  • config get: 读取运行的redis服务器的配置参数
  • config set: 更改

如:

  1. config get requirepass # 查看密码
  2. config set requirepass 123456 # 设置密码位123456
  3. auth 123456 # 认证密码
  4. config get * # 查看所有(匹配)
  • config resetstat充值数据统计报告

七、查询信息

  • info [section]: 查询redis相关信息
  1. [section]
  2. server # Redis server 的常规信息
  3. clients # Client 的连接选项
  4. memory # 存储占用相关信息
  5. persistence # RDB and AOF 相关信息
  6. stats # 常规统计
  7. replication # Master/Slave 请求信息
  8. cpu # CPU 占用信息统计
  9. cluster # Redis 集群信息
  10. keyspace # 数据库信息统计
  11. all # 返回所有信息
  12. default # 返回常规设置信息

八、安全

密码配置文件 redis.conf

  1. $ sudo service redis-server restart # 重启
  • 密码认证(登录)
  1. $ redis-cli
  2. > auth 密码

  3. $redis-cli -a 密码

九、主从复制

分担服务器压力, 部署多台服务器,, 分别用于缓存的读和写,

用于写的为主服务器, 读的为从服务器;

建立主从关系:

  1. # slave 端执行命令
  2. # slaveof ipaddress:port
  3. > slaveof 127.0.0.1:6379
  4. # 如何master服务器设置了密码,则需要在从服务器中设置好密码
  5. > config set masterauth <password>

十、事务处理

当client 发送multi命令后进入事务, 后续命令不会执行, 而是存放到队列中, 执行exec后 redis按顺序执行队列中的命令;

(实际中不能依赖redis事务保证数据一致性)

  1. > multi
  2. > set name a
  3. > set name b
  4. > exec
  5. > get name

十一、持久化机制

将内存中的数据长久存到磁盘中;

两种方式:

  1. snapshotting (快照), 将数据存到文件里;
  • save 900 1: 900s内如果超过1个key被修改, 则发起快照保存
  1. Append-only file (aof), 将读写操作放到文件中;
  1. # 配置文件
  2. appendonly yes //启用 aof 持久化方式
  3. # appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证了数据的完整持久化
  4. appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中
  5. # appendfsync no //完全依赖 os,性能最好,持久化没有保证

虚拟内存, 在2.6以上版本取消了(在后面的版本由redis自身管理)

十二、参考

redis入门基础的更多相关文章

  1. Redis学习之路(二)之Redis入门基础

    一.Redis基本介绍 (1)Redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(string ...

  2. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  3. redis最基础的入门教程

      Redis最基础入门教程 简介 Redis 简介 Redis 优势 Redis与其他key-value存储有什么不同? 字符串(Strings) 哈希(Hash) 列表(List) 集合(Sets ...

  4. Redis入门指南

    随着互联网业务对性能需求日益强烈,作为Key/Value存储的Redis具有数据类型丰富和性能表现优异的特点.如果能够熟练地驾驭它,不管是把它用做缓存还是存储,对很多大型应用都很多帮助.新浪作为世界上 ...

  5. Redis入门教程(二)

    推荐阅读: Redis入门教程(一)https://www.cnblogs.com/jichi/p/10285346.html 5. Redis 的数据结构 5.1 Redis 数据结构介绍 redi ...

  6. Docker入门基础(一)

    Docker入门基础 Linux只存在文件目录,不存在“盘”的概念 Dockers优点:方便部署环境.资源占用少(微服务) Docker的三大概念 镜像:类似虚拟机的镜像.用俗话说就是安装文件.容器: ...

  7. Redis入门指南之三(入门)

    本节主要介绍Redis的5种数据类型,同时使用Python API来操作Redis,其中python版本为3.5, redis版本为4.0.2. redis-py 的API的使用可以分类为: (1)连 ...

  8. Redis入门及主从配置

    1.Redis入门简介 Redis是一个开源的使用ANSI C语音编写.支持网络.可基于内存亦可持久化的日志型,Key-Value数据库.支持存储的value类型包括 string(字符串).list ...

  9. 超强、超详细Redis入门教程【转】

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

随机推荐

  1. Kubernetes性能测试实践

    本文由  网易云 发布. 概述 随着容器技术的发展,容器服务已经成为行业主流,然而想要在生产环境中成功部署和操作容器,关键还是容器编排技术.市场上有各种各样的容器编排工具,如Docker原生的Swar ...

  2. day 76 滑动窗口 ,头像上传

    一.上传文件 前端html <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  3. 廖雪峰Python学习笔记——序列化

    序列化 定义:程序运行时所有变量都存在内存中,把变量从内存中变成可存储或可传输的过程称为序列化pickling,在其他语言中称为serialization,marshalling,flattening ...

  4. C++派生类与基类对象赋值情况

    一 .普通赋值 (同名隐藏) 子类对象调用和父类相同的函数名,该父类的函数名会被隐藏,只会调用子类的函数. Class A { public: void show(); void show(int); ...

  5. JQuery Mobile - 解决切换页面时,闪屏,白屏等问题

    在点击链接,切换页面时候,总是闪屏,感觉很别扭,看起来不舒服,怎么解决这个问题?方法很简单,就是在每个页面的meta标签内定义user-scalable的属性为 no! <meta name=& ...

  6. 五,session数据写入memcached

    1,session数据通常保存在服务器端的文件中,它的默认过期时间是1440s.我们可以将session数据保存到memcached中,设定memcached的过期时间大于session过期时间即可. ...

  7. centos7修改默认运行级别的变化

    在学习centos7,视频教学中使用的的centos6,查看权限文件命令为 cat /etc/inittab/ 但是在centos7中输入以下命令会出现这种情况 这个已经不用了,现在修改权限的命令修改 ...

  8. jmeter -- 在beanshell中拿到请求body参数和header参数

    beanshell: import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.http.control ...

  9. OSS和CDN配置使用

    Oss和cdn目的就是: 1 把资源文件和程序分开存储 2 可以通过cdn缓存加速   下面介绍阿里云OSS和CDN如何配制 一  阿里云开通子RAM账户 1  不使用主账号访问OSS,需要创建子RA ...

  10. (转)MySQL字段类型详解

    MySQL字段类型详解 原文:http://www.cnblogs.com/100thMountain/p/4692842.html MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间 ...