简介

Redis是Nosql数据库的一种,可基于内存亦可持久化的日志型、是一个Key-Value数据库,多用在缓存方面

安装

  • Windows

    • 下载地址, 最新版本的Redis好像仅支持64位

    • Windos下载Redis文件后直接解压启动redis-server.exe即可,下图所示即启动成功

    • 然后这个cmd窗口不要关闭,启动同一目录下的redis-cli.exe 出现下面的窗口即服务端连接成功

  • Linux

    • 安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++

    • redis的源码包上传到linux系统。

    • 解压缩redis。

    • 编译。进入redis源码目录。执行指令:make

    • 安装。make install PREFIX=/usr/local/redis 其中 PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下

基本的安装到这里已经完成

redis的启动

  • 前端启动:在redis的安装目录下直接启动redis-server , [root@localhost bin]# ./redis-server

  • 后台启动

    • 把/root/redis-3.0.0/redis.conf复制到/usr/local/redis/bin目录下 [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/

    • 修改配置文件daemonize yes 然后启动redis [root@localhost bin]# ./redis-server redis.conf 这种启动方式为指定配置文件的启动方式

  • 查看redis进程 [root@localhost bin]# ps aux|grep redis 会显示两行, 一行为redis进程 一行为查询语句的进程

redis 客户端连接

  • [root@localhost bin]# ./redis-cli 默认连接localhost运行在6379端口的redis服务,连接本地服务。

  • [root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379 -h:连接的服务器的地址 -p:服务的端口号

redis内的五种数据类型

redis是一个key-value数据库, 即通过key可以取到存储的value类型的数据 , 下面是五种类型

redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。

key-value(键值对)

下面是几种常用的命令

	get()  通过key获取value

	set()  设置key,value

	getset()  先取到这个key的value然后再设置value

	del()  删除key

	appen() 拼接字符串

key-fields-values(Hash)

下面是hash的存储结构

使用示例 在实例中,我们设置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中。

常用命令

	hset key field value    // 存储

	hmset key field value field2 value.....  // 存多个

	hget key field   // 取值

	hmget key field field2 field3.....  // 取多个

	hgetall key // 取出全部

	hdel key field field2 // 删除多个

	del key  // 删除整个hash

	incrby key field incrument  // 增加值

	hexists key field  // 判断指定key中的field是否存在

	hlen key   // 获取key中包含的field

	hkeys key // 获取所有的key

	hvals key // 获取所有的value

	hlen key // 找到对应的key的长度

list(队列)

存储结构, 这个存储结构可以两端都可以进行插入和删除

使用示例, 在实例中我们使用了 LPUSH 将三个值插入了名为 runoobkey 的列表当中。

	lpush key values[value2 ..]   // 从左边压

	rpush key values[value2 ..]   // 从右边压

	lrange key start end  // 从左边取

	lpop key  // 左边弹栈(移出并且取出)

	rpop key  // 左右弹栈(移出并且取出)

	llen key  // 返回list长度

	lpushx key value // 如果key存在,则向头插入,不存在,则不进行

	lrem key conunt value  // 从左往右删除conunt个value的,count<0 则为从右往左 , 等于0 删除所有value元素

	lset key index value //  在位置index插入值,0代表头,-1代表尾

set 存储结构和list相同,不过不允许有相同的元素,并且只能从一端来进行操作,并且set内的元素没有顺序

使用示例,在实例中我们通过 SADD 命令向名为 runoobkey 的集合插入的三个元素。

常用操作

	sadd key values[...]   // 添加多个元素

	srem key members[...]  // 删除多个

	sismember key member  // 检查元素是否存在

	smembers key  // 查询

	sdiff key1,key2...  // 求key1 和 key2的差集

	sinter key1,key2 ...  // 返回key1和key2的交集

	sunion key1,key2 ...  // 返回key1和key2的并集

	scard key  // 获取key中的长远数量

	srandmember key   // 从key中随机获取一个值

sortedset,有序的set,排序方式根据权重来排序 所以在添加元素的时候需要给每个元素设置一个权重

使用示例 在实例中我们通过命令 ZADD 向 redis 的有序集合中添加了三个值并关联上分数。

基本操作

	zadd key score member score2 member2  // 添加成员

	zrange key start end   // 获取集合角标 start - end的元素

	zrange key start end  withscores // 获取集合角标 start - end的元素 , 并且按照权重排序

	zcard key  // 获取成员数量

	zscore key member  // 返回指定成员变量的权重

	zrevrange key start end withscore // 按照分数从大到小返回

	zremrangebyrank key start stop // 按照排名范围删除元素(从小到大)

	zremrangebyscore key min max // 按照分数范围删除元素

	zrangebyscore key min max [withscores][limit offset count]  // 返回分数在min-max范围内的数,从高到低 limit: 表示从offset下标元素开始并返回count个成员变量

	zincrby key increment member   // 指定成员变量增加的分数

	zcount key min max  // 返回分数在min - max内的成员

	zrank key member // 返回成员在集合中排序(从小到大)

	zrevrank key member // 返回成员在集合中排序(从大到小)

上面就是redis中的五种数据结构,可以根据业务具体需求来选择对应的机构

通用操作

	kess pattern  // 筛选 * 表示任意一个或多个字符 ? 表示任意一个

	del key1,key2..  // 删除指定key

	exists key // 判断key是否存在

	rename key newkey // 为当前key重命名

	expire key number //设置过期时间(单位:秒)

	ttl key // 获取该key所剩的超时时间, -1 : 没设置超时 -2:key不存在

	type key  // 获取key的类型

	flushall // 删除所有数据库中的key

redis的可视化工具 RedisDesktopManager 官方网站下载即可, 打开软件输入host地址就能连接,进行可视化操作

![](http://images2017.cnblogs.com/blog/1260476/201712/1260476-20171206125530191-2075700718.png)

redis在java上的工具类 jedis 可以参照api进行使用 , 使用方式和jdbc相似.

我的博客即将同步至腾讯云+社区,邀请大家一同入驻。

Redis-Nosql数据库入门的更多相关文章

  1. Redis - NoSQL数据库技术(一)

    NoSQL入门概述(一) 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 什么是NoSQL NoSQL(NoSQL - Not Only SQL),意“不仅仅是SQL”: 泛指非关系 ...

  2. redis缓存数据库入门教程

    入门redis教程 前言: 应公司需求,最近学习了一下redis数据库的一些简单入门的教程,整理出来分享给大家,喜欢的可以关注和点赞哦~ 如文章中有不足之处求指正,谢谢 目录 ·什么是redis?为什 ...

  3. Redis Nosql数据库

              Redis是一个key-value存储系统.和Memcached类似.可是攻克了断电后数据全然丢失的情况.并且她支持很多其它无化的value类型.除了和string外,还支持lis ...

  4. 一篇文章带你了解NoSql数据库——Redis简单入门

    一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...

  5. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  6. NoSql数据库简介及Redis学习

    NO-Sql数据库:Not Only不仅仅是SQL 定义:非关系型数据库:NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固 ...

  7. 性能超越 Redis 的 NoSQL 数据库 SSDB

    idea's blog - 性能超越 Redis 的 NoSQL 数据库 SSDB 性能超越 Redis 的 NoSQL 数据库 SSDB C/C++语言编程, SSDB Views: 8091 | ...

  8. NoSQL:redis缓存数据库

    一 Redis介绍 Redis和Memcached类似,也属于key-value nosql 数据库 Redis官网redis.io, 当前最新稳定版4.0.1 和Memcached类似,它支持存储的 ...

  9. 项目实战11—企业级nosql数据库应用与实战-redis的主从和集群

    企业级nosql数据库应用与实战-redis 环境背景:随着互联网2.0时代的发展,越来越多的公司更加注重用户体验和互动,这些公司的平台上会出现越来越多方便用户操作和选择的新功能,如优惠券发放.抢红包 ...

  10. 企业级nosql数据库应用与实战-redis

    一.NoSQL简介 1.1 常见的优化思路和方向 1.1.1 MySQL主从读写分离 由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力.读写集中在一个数据库上让数据库不堪重负,大部 ...

随机推荐

  1. canvas+gif.js打造自己的数字雨头像

    前言 昨天 是1024程序员节,不知道各位看官过的怎么样.既然是过节,就要有个过节的样子,比方说,换个头像

  2. js正则验证特殊字符

    js正则验证特殊字符 方案一 var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im, regCn = /[·!#¥(--):: ...

  3. Azure 基础:用 PowerShell 自动登录

    PowerShell 是管理 Azure 的最好方式,因为我们可以使用脚本把很多的工作自动化.比如把 Azure 上的虚拟机关机,并在适当的时间把它开机,这样我们就能节省一些开支,当然我们同时也为减少 ...

  4. MongoDB自动增长

    MongoDB 没有像SQL一样有自动增长的功能,如果我们需要实现ObjectId自动增长功能,可以通过编程的方式来实现.步骤如下: 1. 创建counters集合: db.createCollect ...

  5. px em rem的详解与区别

    在前端项目开发中,px,em,以及rem都是页面布局常用的单位,虽然它们是长度单位,但是所含的意义不一样.通过复习和查阅,总结了以下知识. px像素(Pixel) 定义:相对长度单位.像素px是相对于 ...

  6. 无所不会的fiddler遇到的尴尬

    昨天测试项目时,遇到一个尴尬的事 预期功能:点击页面某个按钮会post2个请求 实际情况:点了按钮,fiddler抓包没有看到任何请求 后来经过他人提醒在PC端浏览器打开此页面,点击按钮后看到页面有j ...

  7. ssh密钥创建分发(端口号非22)&脚本实现自动创建分发密钥

    1.1 服务端端口号变化了,如何基于秘钥连接 1.1.1 环境准备 实验环境: [root@test ~]# cat /etc/redhat-release CentOS release 6.9 (F ...

  8. js foreach、map函数

    语法:forEach和map都支持2个参数:一个是回调函数(item,index,input)和上下文: •forEach:用来遍历数组中的每一项:这个方法执行是没有返回值的,对原来数组也没有影响: ...

  9. jQuery选择器(可见性选择器)第五节

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  10. Spring Boot单元测试(Mock)

    Spring Boot单元测试(Mock) Java个人学习心得 2017-08-12 16:07 Mock 单元测试的重要性就不多说了,我这边的工程一般都是Spring Boot+Mybatis(详 ...