一、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. 小红书第五章——引用类型之function类型

    有趣的函数——function类型 函数实际上是对象,每个函数都是function类型的实例,具有属性和方法. 1.函数的定义方法 1)函数声明语法 function sum(num1,num2){/ ...

  2. CentOS 8 正式发布

    转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net] 本文地址:https://www.oschina.net/news/110111/centos-8-re ...

  3. DeleteFolder

    import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; /*** * @author ...

  4. Webstorm轻松部署项目至服务器

    wo大前端在开发环境下,需要将项目部署到测试环境,webstorm进行基础配置操作就可实现. 一.在Deployment选项下配置远程服务器地址 点击加号,选择type类型,Name自己填,帮你找到这 ...

  5. 基于hash和pushState的网页前端路由实现

    客户端路由 对于客户端(通常为浏览器)来说,路由的映射函数通常是进行一些DOM的显示和隐藏操作.这样,当访问不同的路径的时候,会显示不同的页面组件.客户端路由最常见的有以下两种实现方案:* 基于Has ...

  6. 实现一个图片轮播-3d播放效果

    前言:最近在做一个音乐播放器,首页要做一个图片轮播,看了bootstrap的carousel插件以及移动端的swipe.js库,都是平面图片轮播的效果,所以自己想着实现类似网易云app里那种3d图片轮 ...

  7. 洛谷:P3950 部落冲突

    原题地址:https://www.luogu.org/problemnew/show/P3950 题目简述 给定一棵树,每次给定一个操作,有如下两种: 将某条边染黑 2.询问给定的u,v两点间是否有边 ...

  8. Grafana 6.4 正式发布!

    原文链接:Grafana 6.4 正式发布! 2019 年 10 月 2 日,也就是国内小伙伴们的放假期间,Grafana 实验室正式发布了 Grafana 6.4 版本.这个版本主要围绕数据模型和指 ...

  9. Flask上下文管理机制流程(源码剖析)

    Flask请求上下文管理 1 偏函数 partial 使用该方式可以生成一个新函数 from functools import partial def mod( n, m ): return n % ...

  10. java之ReentrantLock详解

    前言 如果一个代码块被synchronized修饰了,当一个线程获取了相应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的释放,现在有这么一种情况,这个获取锁的线程由于要等待IO或者其他原 ...