美文网首页我爱编程
Redis的一些总结

Redis的一些总结

作者: peakcool | 来源:发表于2016-11-07 16:58 被阅读105次

前记:好久没回简书了,最近学了redis,把一些总结的东西分享给大家。


Redis是基于内存的数据存储系统,数据以key=>value形式存储。value支持多种数据类型,包括string,hash,list,set,sorted set等等。

1.起步

安装教程

启动服务端: redis-server

启动客户端: redis-cli

验证是否成功:

127.0.0.1:6379> PING
PONG
127.0.0.1:6379>

学习教程

2.配置文件 redis.conf

CONFIG GET * //查看所有配置
  • daemonize: 默认为no,yes则为启动redis-server时自动是后台运行方式

  • port: 指定端口号

  • bind: 绑定ip,只接受来自绑定ip的请求,更安全

3.redis 数据持久化

RDB原理:

  • Redis使用fork函数复制一份当前进程(父) 的副本(子)
  • 父进程继续接收并处理客户端发来的命令,而子进程开始将内存中的数据写入硬盘中的临时文件
  • 当子进程写入完所有数据后会用该临时文件替换旧的rdb文件,到此一次快照操作完成。

AOF原理:

AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。运作方式是不断地将命令追加到文件的末尾。

如何选择?

  • 如果想达到像数据库一样的数据安全性能,应该同时使用两种
  • 若要求不是特别高,可以只使用RDB持久化

4.redis 开启启动服务

  1. /etc/init.d/redis 加入以下内容

     #!/bin/sh 
     ##chkconfig: 2345 80 90 
     ##description:auto_run 
             PATH=/usr/local/bin:/sbin:/usr/bin:/bin 
    
     REDISPORT=6379 
     EXEC=/usr/local/bin/redis-server 
     REDIS_CLI=/usr/local/bin/redis-cli 
     PIDFILE=/var/run/redis.pid 
     CONF="/etc/redis.conf" 
     
     case "$1" in 
     start)
         if [ -f $PIDFILE ] 
         then 
             echo "$PIDFILE exists, process is already running or crashed" 
         else 
             echo "Starting Redis server..." 
             $EXEC $CONF 
         fi 
         if [ "$?"="0" ] 
         then 
             echo "Redis is running..." 
             fi 
             ;; 
         stop) 
         if 
         [ ! -f $PIDFILE ] 
         then 
             echo "$PIDFILE does not exist, process is not running" 
         else 
             PID=$(cat $PIDFILE) 
             echo "Stopping ..."
             $REDIS_CLI -p $REDISPORT SHUTDOWN 
             while [ -x ${PIDFILE} ] 
             do 
                 echo "Waiting for Redis to shutdown ..." 
                 sleep 1 
             done 
                 echo "Redis stopped" 
             fi 
             ;; 
         restartforce-reload) 
             ${0} stop 
             ${0} start 
             ;; 
         *) 
         echo "Usage: /etc/init.d/redis {startstoprestartforce-reload}" >&2 
             exit 1 
     esac 
     #######
    
  2. 设置权限: chmod +x /etc/init.d/redis

  3. 加入开机启动服务

    • linux: sudo chkconfig redis on
    • ubuntu: sudo sysv-rc-conf redis on
  4. 检查是否加入服务: service redis start

5.Redis 6种过期策略

  • Volatile-lru : 只针对设置了过期时间的key
  • AllKeys-lru: 删除lru算法的key
  • Volatile-random: 随机删除即将过期的key
  • Allkeys-random: 随机删除
  • Volatile-ttl: 删除即将过期的key
  • noeviction: 永不过期

Redis 事务

事务是一个单独的隔离,事务中的所有命令都会序列化,按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

事务是一个原子操作,事务中的命令要么全部被执行(commit),要么全部不执行,可以回滚(rollback)。

一个事务从开始到执行会经历三个阶段

  • 开始事务
  • 命令入队
  • 执行事务
序号 命令及描述
1 DISCARD 取消事务,放弃执行事务块内的所有命令。
2 EXEC 执行所有事务块内的命令。
3 MULTI 标记一个事务块的开始。
4 UNWATCH 取消 WATCH 命令对所有 key 的监视。
5 WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

Redis 手册

Redis中文手册PHP版

Redis手册

Redis命令参考

Redis 精文

缓存更新套路--陈皓

《Redis系列专题》之 20分钟快速了解Redis--手插口袋_

Redis进阶:数据持久化,安全,在PHP中使用--atwal

相关文章

  • Redis的一些总结

    前记:好久没回简书了,最近学了redis,把一些总结的东西分享给大家。 Redis是基于内存的数据存储系统,数据以...

  • Redis一些总结

    支持的数据类型 String, List, Hash, Set, Zset, 自定义 Redis持久化:把内存写到...

  • Redis心得

    这里总结一下我使用Redis的一些心得,主要是参考了Redis设计与实现 和 Redis开发与运维 这两本书。 因...

  • redis系列之sentinel结构的网络构建

    本文是结合redis的源码来总结一些原理性内容(如有不正确请多多指正)。重新梳理redis的sentinel的高可...

  • 面试官:请讲一下Redis主从复制的功能及实现原理

    摘要:Redis在主从模式下会有许多问题需要考虑,这里写了一些关于redis在多服务器下的一些问题分析和总结。 R...

  • Redis知识总结

    最近参与了一些项目,其中包含单点登陆(集群),因为使用的redis,所以这里简单对redis做一个学习总结,rei...

  • Redis、Zookeeper实现分布式锁——原理与实践

    Redis与分布式锁的问题已经是老生常谈了,本文尝试总结一些Redis、Zookeeper实现分布式锁的常用方案,...

  • Redis的一些知识总结

    1.Redis 是基于内存的高性能的key-value类型数据库2.纯内存操作,异步定时存储到硬盘数据库3.key...

  • redis一些总结笔记

    1、为什么使用redis 主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是...

  • Redis一些学习总结

    Num01-->Redis定义 Num02-->Redis数据类型 Num03-->Redis中string类型 ...

网友评论

    本文标题:Redis的一些总结

    本文链接:https://www.haomeiwen.com/subject/zqpouttx.html