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& ...
随机推荐
- java-ztest测试报告的搭建,python-BeautifulReport
今天用testng的时候感觉测试报告贼丑又慢,以下图片是对比.了解到ztest,搭建的时候发现网上没有教程,对java真是太不友好了,所以步骤记录下吧.有疑问的可进群:231733032 使用ztes ...
- WPS删除多余空白页
WPS删除多余空白页 在实际工作中,我们在操作WPS文字的时候常常会遇到一种问题,就是当在文字占满整页的时候,文档常常会多出一页空白页的现象.如图1 图 1 对于WPS文字怎么删除空白页这个问题, ...
- 4款黑科技级别的宝藏APP,能够轻松满足你的多种需求,请低调收藏
有没有这样几款软件,在你每次一换新手机的时候就会立刻重新安装下来,感觉自己已经完全离不开它们?今天就来给大家分享几个非常好用的APP. 一.小羊搜搜 在生活中人人都有自己的爱好,无论你是喜欢影视.小说 ...
- JAVA多线程线程同步问题
线程同步 在多线程的编程环境下,可能看着没有问题的代码在运行几千上万或者更多次后,出现了一些看着很奇怪的问题,出现这样的问题的原因就是可能会有两个或者更多个线程进入了同一块业务处理代码中导致了判断失效 ...
- ExcelDataReader read excel file
上篇文章向大家介绍了用DocumentFormat.OpenXml.dll读取excel的方法,这里再向大家介绍一种轻量级简便的方法,用的是Excel.dll,及ICSharpCode.SharpZi ...
- php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
$str="你好<我>(爱)[北京]{天安门}"; echo f1($str); //返回你好 echo f2($str); //返回我 echo f3($str); ...
- python pytesseract——3步识别验证码的识别入门
验证码识别是个大工程,但入门开始只要3步.需要用到的库PIL.pytesserac,没有的话pip安装.还有一个是tesseract-ocr 下载地址:https://sourceforge.net/ ...
- 探讨Microsoft Solution Framework(MSF)框架下管理的秘密
hello,同学们,同胞们,同志们,同龄们,这样们,那样们,们们们,我又回来写“论文”了,半年时间没见我发布任何博文,是不是认为我被潜规则了啊,哈哈.我想死你们了.好了,废话不多说,进入今天主题: ...
- maven更新慢,改用国内镜像地址
方法很简单: 在 maven根目录 > conf > settings.xml 中 <mirrors>里添加以下子节点: <mirror> <id>al ...
- 2.RF中scalar,list和dict变量的定义和取值
$:定义scalar变量:@定义list变量:&定义dict变量: $还用来取值,包含scalar, list和dict变量,如下example所示 1.定义scalar变量:set vari ...