一、Redis是什么

  Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此Redis可以满足很多的应用场景,而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常惊人。

  不仅如此,Redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据不会“丢失”。

  除了上述功能以外,Redis还提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能。

  二、Redis特性

  • 速度快:①所有数据都是存放在内存中;②使用C语言实现的;③使用单线程架构,预防了多线程可能产生的竞争问题;④源码集性能和优雅于一身。
  • 基于键值对的数据结构服务器:Redis中的值不仅可以是字符串,还可以是具体的数据结构。五种数据结构,同时还有Bigmaps、HyperLogLog和GEO。
  • 丰富的功能:键过期实现缓存、发布订阅实现消息系统、Lua脚本功能、事务功能、流水线(Pipeline)功能
  • 简单稳定:①Redis源码很少;②Redis使用单线程;③Redis不需要依赖于操作系统中的类库。
  • 客户端语言多:Redis提供了简单的TCP通信协议,同时支持Redis的客户端语言几乎涵盖了主流的编程语言。
  • 持久化:将数据放在内存中是不安全的,一旦发生断电或者机器故障,重要的数据可能就会丢失,所以Redis提供两种持久化方式:RDB和AOF,可以将内存的数据保存在硬盘中。
  • 主从复制:Redis提供了复制功能,实现了多个相同数据的Redis副本。
  • 高可用性和分布式:实现了高可用性的Redis Sentinel和分布式的Redis Cluster。

  三、Redis可以做什么

  • 缓存:Redis提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。
  • 排行榜系统:Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。
  • 计数器应用:Redis天然支持技术功能而且技术的性能也非常好,可以说是计数器系统的重要选择。
  • 社交网络:赞/踩、粉丝、共同好友、推送、下拉刷新等是社交网络的必备功能,由于社交网站访问量通常比较大,而且传统的关系型数据不太适合保存这种类型的数据,Redis提供的数据结构可以相对比较容易地实现这些功能。
  • 消息队列系统:Redis提供了发布订阅功能和阻塞队列的功能,对于一般的消息队列功能基本可以满足。

  四、Redis安装与启动

  1.在Redis官网https://redis.io/上下载源码redis-4.0.9.tar.gz

  2.执行以下命令:

 tar xzf redis-4.0..tar.gz
ln -s redis-4.0. redis
cd redis
make
make install

  3.安装后,查看Redis的版本:

root@myubuntu:/home/software/redis# redis-cli -v
redis-cli 4.0.

  4.查看redis可执行文件:

root@myubuntu:/usr/local/bin# ls -l
总用量
-rwxr-xr-x root root 5月 : redis-benchmark Redis基准测试工具
-rwxr-xr-x root root 5月 : redis-check-aof           Redis AOF持久化文件检测和修复工具
-rwxr-xr-x root root 5月 : redis-check-rdb           Redis RDB持久化文件检测和修复工具
-rwxr-xr-x root root 5月 : redis-cli               Redis命令行客户端
lrwxrwxrwx root root 5月 : redis-sentinel -> redis-server 启动Redis Sentinel
-rwxr-xr-x root root 5月 : redis-server             启动Redis

  5.启动Redis有三种方法:默认配置、运行配置、配置文件启动

  (1)默认配置

  从打印日志可以看出,当前版本4.0.9,默认端口6379,进程号6985.

  直接启动无法自定义配置,所以这种方式不建议使用。

root@myubuntu:/usr/local/bin# redis-server
:C May ::46.046 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
:C May ::46.046 # Redis version=4.0., bits=, commit=, modified=, pid=, just started
:C May ::46.046 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
:M May ::46.047 * Increased maximum number of open files to (it was originally set to ).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 4.0. (/) bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port:
| `-._ `._ / _.-' | PID: 6985
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' :M May ::46.047 # WARNING: The TCP backlog setting of cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of .
:M May ::46.047 # Server initialized
:M May ::46.047 # WARNING overcommit_memory is set to ! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
:M May ::46.047 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
:M May ::46.047 * DB loaded from disk: 0.000 seconds
:M May ::46.047 * Ready to accept connections

  (2)运行启动

  可以通过这种方式修改配置名和值,但是如果需要修改的配置较多或者希望将配置保存到文件中,不建议使用这种方式。

root@myubuntu:/usr/local/bin# redis-server --port 

  (3)配置文件启动

  通常是使用读取配置文件来启动Redis的方式,因为这种方式可以提供更大的灵活性,或者应用在一台机器上启动多个Redis的场景下。

root@myubuntu:/home/software/redis# redis-server /home/software/redis/redis.conf 

  6.Redis命令行客户端

  在启动Redis服务后,使用redis-cli连接、操作Redis服务。redis-cli可以使用两种方式连接Redis服务器:

  (1)交互式方式

bigjun@myubuntu:~/下载$ redis-cli -h 127.0.0.1 -p
127.0.0.1:> set hello world
OK
127.0.0.1:> get hello
"world"
127.0.0.1:> get hello
"world"
127.0.0.1:> set myname bigjun
OK
127.0.0.1:> get myname
"bigjun"
127.0.0.1:> shutdown
not connected> redis-cli shutdown
Could not connect to Redis at 127.0.0.1:: Connection refused
not connected> redis-cli
Could not connect to Redis at 127.0.0.1:: Connection refused

  (2)命令方式

bigjun@myubuntu:~/下载$ redis-cli -h 127.0.0.1 -p  get hello
“world”

   7.停止Redis服务

  除了通过shutdown命令关闭Redis服务以外,还可以通过kill进程号的方式关闭掉Redis。一般来说,断开与客户端的连接、持久化文件生成,是一种相对优雅的关闭方式。

redis-cli shutdown

Redis(一)Redis基础的更多相关文章

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

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

  2. Redis学习---面试基础知识点总结

    [学习参考] https://www.toutiao.com/i6566017785078481422/ https://www.toutiao.com/i6563232898831352323/ 0 ...

  3. 【redis】redis基础命令学习集合

    写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...

  4. 初识redis(redis基础命令)

    redis简介redis是一个开源(BSD许可)的使用C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,它可以用作数据库.缓存和消息中间件,并提供多种语言的API.从201 ...

  5. redis 教程(一)-基础知识

    redis 简介 redis 是高性能的 key-value 数据库,读的速度是110000次/s,写的速度是81000次/s ,它以内存作为主存储 具有以下优点: 1. 支持数据的持久化,将内存中的 ...

  6. Redis(一)【基础入门】

    目录 一.大型网站的系统特点 二.大型网站架构发展历程 三.从NoSQL说起 四.Redis简介 五.Redis安装 1.上传并解压 2.安装C语言编译环境 3.修改安装位置 4.编译安装 5.启动R ...

  7. redis安装及基础操作(1)

    ============================================================= 编译安装 0.环境 Linux:centos6.5 redis:3.0.5 ...

  8. redis学习研究--基础知识

    以下内容多为摘抄转载: 1. Redis 是什么 Redis是一个开源的使用ANSI C语言编写的基于内存的key/value存储系统,与memcache类似,但它支持的value类型更多,包括:字符 ...

  9. redis数据库的基础

    redis数据库 redis有以下三个特点 redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用 redis不仅仅支持简单的key-value类型的数据,同时还提 ...

  10. redis缓存中间件基础

    前序: 默认使用SimpleCacheConfiguration 组件ConcurrentMapCacheManager==ConcurrentMapCache将数据保存在ConcurrentMap& ...

随机推荐

  1. 对象实例Vue

    var vm = new Vue({ el:'#app', data:{}, //数据 methods:{}, //方法调用 filters:{}, //私有过滤器 directives:{}, // ...

  2. spark运行信息及报错问题解决集锦

    错误1: ERROR client.RemoteDriver: Failed to start SparkContext: java.lang.IllegalArgumentException: Ex ...

  3. XLNet预训练模型,看这篇就够了!(代码实现)

    1. 什么是XLNet XLNet 是一个类似 BERT 的模型,而不是完全不同的模型.总之,XLNet是一种通用的自回归预训练方法.它是CMU和Google Brain团队在2019年6月份发布的模 ...

  4. Spring 梳理-JdbcTemplate简介

    JdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTempla ...

  5. 生产环境项目问题记录系列(二):Docker打包镜像Nuget包因权限问题还原失败

    docker打包镜像遇到一个因为nuget权限验证问题导致镜像打包失败的问题,公司Nuget包用的是tfs管理的,tfs有权限验证,结果导致nuget还原失败,原有的NuGet.config文件如下: ...

  6. 《构建之法》MSF&需求分析

    第七章 MSF MSF基本原则 推动信息共享与沟通 为共同的远景而工作 充分授权和信任 各司其职,对项目共同负责 交付增量的价值 保持敏捷,预期和适应变化 投资质量 学习所有的经验 与顾客合作 MSF ...

  7. day 21

    目录 组合 封装 访问机制 property 多态 抽象类的目的 鸭子类型 组合 组合是指的是一个对象中的属性,时另一个对象. 组合的目的和继承一样,为了减少代码冗余 封装 封装指的是把一堆属性(特征 ...

  8. 用到的Dos命令总结 持续更新

    1.xcopy命令:复制的扩展命令     常用参数:/s:复制空文件夹 不使用可能会造成文件混乱    /y忽略覆盖提示 使用/y会直接覆盖全部 例子:xcopy lark-UI\dist C:\U ...

  9. e课表项目第二次冲刺周期第六天

    昨天干了什么? 昨天是这次冲刺周期的第五天,我们的冲刺周期已经快过了一半,我们已经实现了对第一层界面的设计,所以我们的进度和我们的时间正好吻合,所以我们有信心完成我们的软件.我在网上搜了一些关于监听的 ...

  10. LeetCode初级算法--数组01:只出现一次的数字

    LeetCode初级算法--数组01:只出现一次的数字 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn. ...