Redis(一)Redis基础
一、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基础的更多相关文章
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- Redis学习---面试基础知识点总结
[学习参考] https://www.toutiao.com/i6566017785078481422/ https://www.toutiao.com/i6563232898831352323/ 0 ...
- 【redis】redis基础命令学习集合
写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...
- 初识redis(redis基础命令)
redis简介redis是一个开源(BSD许可)的使用C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,它可以用作数据库.缓存和消息中间件,并提供多种语言的API.从201 ...
- redis 教程(一)-基础知识
redis 简介 redis 是高性能的 key-value 数据库,读的速度是110000次/s,写的速度是81000次/s ,它以内存作为主存储 具有以下优点: 1. 支持数据的持久化,将内存中的 ...
- Redis(一)【基础入门】
目录 一.大型网站的系统特点 二.大型网站架构发展历程 三.从NoSQL说起 四.Redis简介 五.Redis安装 1.上传并解压 2.安装C语言编译环境 3.修改安装位置 4.编译安装 5.启动R ...
- redis安装及基础操作(1)
============================================================= 编译安装 0.环境 Linux:centos6.5 redis:3.0.5 ...
- redis学习研究--基础知识
以下内容多为摘抄转载: 1. Redis 是什么 Redis是一个开源的使用ANSI C语言编写的基于内存的key/value存储系统,与memcache类似,但它支持的value类型更多,包括:字符 ...
- redis数据库的基础
redis数据库 redis有以下三个特点 redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用 redis不仅仅支持简单的key-value类型的数据,同时还提 ...
- redis缓存中间件基础
前序: 默认使用SimpleCacheConfiguration 组件ConcurrentMapCacheManager==ConcurrentMapCache将数据保存在ConcurrentMap& ...
随机推荐
- 记一次jmeter从txt文本获取数值并给测试计划的变量赋值,jmeter永久性修改变量。
前言: 需要永久性的改变变量. 其实这个办法并不是最好的,但是是最容易实现的.后期可做成从数据库里直接取值. 赋值BeanShell import java.io.File; import java. ...
- asp.netcore 3.0 Docker Nginx(震惊,原来docker是这样的!)
引言 Docker发布于2013年,Docker是dotCloud公司创始人在法国期间发起的一个公司内部项目,他是dotCloud多年云技术的一个革新.Docker在容器基础上进行了一步的封装,从网络 ...
- redis-公平信号量
但各个系统的系统时间并不完全相同时,基本信号量就会出现问题:系统时间较慢的系统,将能够偷走系统时钟快的系统的信号量,导致信号量变得不公平.以下方法,只要系统间时间相差不到1秒,就不会出现信号量被偷或提 ...
- 讨论c/c++计算小数的精度问题
求出所有100以下整数与一位小数相乘等于相加的浮点数这个有Bug浮点数计算时精度会出现误差 除非使用非常精确的类型或限制浮点的位数 比如 #include <iostream> int m ...
- Android 调用 WebService
1.WebService简介 PS:如果看完上面简介还不是很清楚的话,那么就算了,之前公司就用C#搭的一个WebService! 本节我们并不讨论如何去搭建一个WebService,我们仅仅知道如何去 ...
- drf 框架
一. drf简介 drf框架,全程: django-rest framework , rest是插件名字,django插件的名字叫rest,framework是框架的意思 二. 接口 在平时生活 ...
- 工业搬运机器人(AGV)为什么要选择视觉导航
在智能制造和仓储物流领域,搬运机器人的需求量在逐年上升.机器人(AGV)的种类千差万别,如何选择成为需求方头痛的问题. 本文将从客户关心的多个方面,对市面上的常见的工业级导航方案做一个比较. 搬运机器 ...
- idea配置maven以及手动添加webapp目录
idea配置maven 点击右下角Configure 点击settings 3 . 设置路径 设置自动导包 4 . 点击创建新工程 5 . 选择maven点击下一步 6 . 7 . 8 . 此时,创建 ...
- 本人亲测-SSM整合后的基础包(供新手学习使用,可在本基础上进行二次开发)
本案例是在eclipse上进行开发的,解压后直接添加到eclipse即可.还需要自己配置maven环境.链接:https://pan.baidu.com/s/1siuvhCJASuZG_jqY5utP ...
- ToShowDoc拯救不想写文档的你
ToShowDoc拯救不想写文档的你 写注释已经够折磨开发者了,显然天天curd的我们再去写文档岂不是分分种要被逼疯. 我想每个人都有这种经历 加了一个参数文档忘了更新 参数名更改文档忘了更新 删掉一 ...