Redis数据库的特点:

  Redis数据库属于nosql数据库的一种,其存储于内存中(非硬盘),修改较为方便。

  而Redis数据库的存储方式是使用{key:value}方式存储,类似python基础中的字典类型,和python中字典格式相比,其基础格式定义基本雷同:python中字典key值为不重复的不可变内容,value为任意对象(字符串、列表、集合、字典);Redis中key为固定的不重复字符串格式,value为任意对象(字符串、hash值、列表、集合、有序集合)。

  乌班图中如何使用Redis呢?

  进入虚拟机后:

  redis-cli                         进入Redis数据库

  exit                退出Redis数据库

  sudo service redis start/stop/restart   启动/关闭/重启 乌班图 中的Redis数据库功能

  select n              Redis中默认有16个数据库,n为数据库编号0~15,无法新建数据库,默认选择 n=0

如何在Redis数据库中进行增删改查:

  1、value为字符串类型时:

  创建一个key为str_a,value为hello的数据对象:set key value :中文理解,设置key值,value值  

   set str_a hello

  在上述例子中hello后面加一个_world:append key value :中文理解,在key对应的value后面追加当前value值

   append str_a _world

  查询str_a这个key对应的值:get key :中文理解,获取key对应数据(想到了python字典方法,根据key获取value) 

   get str_a 输出结果:"hello_world"

  删除srt_a这个key的相关数据:del key:中文理解,删除key对应数据

    del str_a 输出结果:(integer) 1

  2、value为hash类型时:

  什么是hash类型:即key:value对应类型,称hash类型,在此处可以简单用一个例子来理解 {key:{field:value}}

  因为key太多了,防止理解偏差,所以hash类型中的key我们称作   field ----> 域

  创建:hset key field value :中文理解下:采用 hash格式 设置  key值  field值 value值

   hset hash_a a 1

  我们都知道,字典内的键值对可以有很多,那么我们这个hash值内可以有多个值么,可以一次添加多个值么?答案是肯定可以啊,,,我们这种猪脑子都能想到的,写代码底层的人员肯定也会啊。

   hmset hash_a b 2 c 3 d 4

  增加:也用set,方法和上面一毛一样

  改:同上+1

  查看:查看的角度有点多,首先我们要知道去查什么!

  查看指定的域的值:hget key field

   hget hash_a a 输出结果:"1"

  查看所有的域和值:hgetall key

   hgetall hash_a 输出结果:太长了,自己敲去

  查看所有的域:hkeys key:field本质上也是键值对的key,到这个指定的key里面,把里面一层的key都找出来

   hkeys hash_a

  查看所有的值:hvals key

   hvals hash_a

  3、当value值为列表时:

  创建/增加数据:lpush/rpush key value : 中文理解:左边/右边增加 key中value的值,关键词lpush/rpush后面第一个单词为key,后面所有打包为列表作为value的值

   rpush list_a 1 2 3 4 5 6

  查看:lrange key start stop : l 代表 list 查看key对应值的索引,从start开始,到stop结束(包含头尾)

   lrange list_a 0 3 输出结果是:1,2,3,4

  如何查看对应索引取值呢?

   lindex list 2 输出结果:3

  修改:lset key index value: 中文理解: 列表格式设置key对应值的索引号值改为value值

   lset list_a 3 333

  然后去查看,会发现4变成了333

  删除:rpop/lpop key :中文理解:左/右边开始删除一个数据(????python里面列表的pop删除方法????)

   rpop list_a

  这样,最后的6就没了

  4、当value值为集合时:

  创建/添加数据:sadd key member : 因为集合本身缩写是set,所以这里设置不能再用set了,干脆改成了add ---> + ,value因为无序性且不重复的特点,用member表示

   sadd s_a 1 1 2 3 4 5 6

  这里只存在了6个值,因为1,1,2,3,4,5,6 在这里面会以{1,2,3,4,5,6,}形式存在,而集合内元素不可以重复,两个1,只保留一个

  查看: smembers key

   smembers key

  删除:spop key : 删除一个值,因为无序,所以....我也不知道他会删哪个,随缘吧

   spop s_a

   如果我不要随机删除呢,我就要把上述数据中的5删掉!

  使用指定删除方法:srem key member   (可以输入多个值,一起删除)

   srem s_a 5

  5、当value值为有序集合时:

  什么是有序集合?就是有顺序的集合!有顺序是什么概念,有 索 引 【一个元素不能重复的列表!???】这其中有一个增加概念,分组,即某些元素被编成一组,编组与其他特性概念不冲突,无影响(即不影响顺序,无关索引)

  创建/增加:zadd key score member [score2 member2...]    : z代表有序集合zset zset格式创建/增加key值中 分组为score的value值(可以写好几个),有点绕,看代码

   zadd zs_a 1 a 2 11 2 9 1 b

  其中的1 2 为分组,a 11 9 b才是值,在这其中,a b 为1组,11 9 为2组,之所以为了这样,可能是为了方便删除?

  查看:zrange key start stop : 有点眼熟?上面列表那块的查看方式?没毛病,毕竟我这里也是有顺序的【zset:其实我就是个有部分集合特征的列表 [/滑稽] 】

    zrange zs_a 0 1

  如果我要看1组内容呢?

  分组查看:zrangebyscore key min max

   zrangeby score zs_a 0 1

  注意,后面要跟两个数字,偏偏这俩数字还包含头尾,,,,,单独查中间一组怎么办?这俩数字可以一样啊,,,,1,1这样就好了[/无语ing]

  删除:zrem key member/

   zrem zs_a b

  一次删一个太慢,我要删一片儿:

  1)上面那个方法,你后面多写几个值,可以一起删除;

  2)根据索引删,切片形式删除:zremrangebyrank key min max

   zremrangebyrank zs_a 0 1

  3)除了索引,我们还有个分组:zremrangebyscore key min max

  zremrangebyscore zs_a 0 1

  至此,五种value表现形式下的增删改查基本全了,但除此之外,我们还有一套操作,针对你创建的数据整体,如果我们将上述内容比作表格,我们之前的操作就是在表格中对数据进行增删改查,那么,我们如何对表格本身进行增删改查呢?(如何对整体的key进行操作?)

  补充点,全局方法

  查看所有数据的key值:

   keys *

  删除键值对:del key

   del zs_a

  查看key是否存在:exists key

   exists list_a

  修改key 的值:rename key new_key

   rename str_a stra

  设置有效时间,时间到了会自动删除,单位秒:expire key seconds

   expire s_a 100

  查看有效时间剩余:ttl key

   ttl s_a

  取消有效时间限制:prisist key

   pristst s_a

数据库Redis(一)的更多相关文章

  1. 缓存数据库-redis数据类型和操作(list)

    转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...

  2. linux --- 8. mysql数据库,redis 数据库

    一. mysql 数据库 1.安装方式 ①yum安装 ②源代码编译安装 ③rpm包安装 yum安装的前提条件,是准备好yum源,可以选择163源,清华源,阿里云源,等等等 .安装mariadb的yum ...

  3. 云数据库Redis版256M双机热备款

    云数据库Redis版是兼容Redis协议标准的.提供持久化的缓存式数据库服务,基于高可靠双机热备架构:全新推出的256M小规格款,适用于高QPS.小数据量业务,并支持免费全量迁移,完美服务于个人开发者 ...

  4. 缓存数据库redis

    什么是Redis? Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命 ...

  5. 笔记-数据库-redis

    笔记-数据库-redis 1.      redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 stri ...

  6. 云数据库 Redis 版,知识点

    资料 网址 什么是云数据库Redis版 https://help.aliyun.com/document_detail/26342.html?spm=a2c4g.11174283.6.542.6b11 ...

  7. 云数据库 Redis 版

    首先观看视频简介 云数据库 Redis 版是一项易于部署和管理的按需数据库服务,与 Redis 协议兼容.云数据库 Redis 版通过从内存缓存中检索数据而提供高速数据读写功能,并通过同时使用内存和硬 ...

  8. 【一个idea】YesSql,一种在经典nosql数据库redis上实现SQL引擎的方案(我就要开历史的倒车)

    公众号链接 最高级的红酒,一定要掺上雪碧才好喝. 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法.既然redis号称nosql,而我偏要把SQL加到redis上, ...

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

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

  10. [数据库]redis与redis操作

    网上搜了以下redis的入门操作,全TM的关于怎么安装配置和性能特点的. 基本的CRUD(Create, Read, Update, Delete)就谁也没说,简直气疯了. 先记录下自己常用的命令,后 ...

随机推荐

  1. Excel添加超链接

    using Microsoft.Office.Interop.Excel; Worksheet sheet; public void AddLink(int row, int col, string ...

  2. ArcMobile的CoordinateCollection在逆时针添加点时自动调整节点顺序的问题

    为了使用ArcMobile实现量测功能,LZ自定义了一个MapGraphicLayer用于绘图,代码如下: using System.Drawing; using ESRI.ArcGIS.Mobile ...

  3. linux内核编程入门--系统调用监控文件访问

    参考的资料: hello world   https://www.cnblogs.com/bitor/p/9608725.html linux内核监控模块--系统调用的截获  https://www. ...

  4. mysql(二)--mysql索引剖析

    1.1. 索引是什么 1.1.1.索引图解 维基百科对数据库索引的定义: 数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询.更新数据库表中数据. 怎么理解这个定义呢?  首 ...

  5. 关于谷歌浏览器不支持html5中audio的autoplay解决方法(js代码解决)

    当我们直接写autoplay时,在chrome中浏览器并没有自动播放音频: 如果直接通过js来调用audio的play()方法也不行: 控制台还会报错 大概意思:play()调用失败,因为用户没有与文 ...

  6. React Hooks: useMemo All In One

    React Hooks: useMemo All In One useMemo https://reactjs.org/docs/hooks-reference.html#usememo refs x ...

  7. Linux bash shell All In One

    Linux bash shell All In One Linux https://tinylab.gitbooks.io/shellbook/content/zh/chapters/01-chapt ...

  8. 微信小程序-显示外链图片 bug

    微信小程序-显示外链图片 bug 显示外链图片 bug 403 bug 禁止外链,未授权 https://httpstatuses.com/403 image component 图片.支持 JPG. ...

  9. how to recursively all files in a folder with sudo permissions in macOS

    how to recursively all files in a folder with sudo permissions in macOS write bug OK sudo chmod 777 ...

  10. js字典

    传送门https://www.2cto.com/kf/201709/680989.html 点击