redis慕课

 

redis常见存储数据结构

  1.字符串【String】,2.哈希【hash】,3.字符串列表【list】,4.字符串集合【set】,5.有序字符串集合

第一种:字符串类型

【1】,存储字符串跟获取字符串,

set为关键字,后面跟key的名字,再后面跟上key的值,获取的时候直接get key即可

【2】根据key修改字符串的值

用关键字getset  key  修改后的值,这样就完成了根据key修改字符串值;例如下面就把百度的地址换成了谷歌的地址

【3】根据key删除某一个值

关键字del,,比如del company,删除了key为company的值

【4】,递增命令

incr关键字可以完成根据key递增的操作,类似于mysql的auto-increment操作,incr的初始值为0,每次进行一次操作增量为1,如果key对应的value为字符串则报错

【5】递减命令

跟incr关键字相反,decr关键字为递减操作,如果key存在并且为数值类型,则每次递减1,如果key不存在则默认0,开始递减

【6】指定增量操作

incrby  key  增量 为递增指定增量的操作,decrby key 减量  为减去指定量的操作,,当然incrby可以给负数为递减,decrby给负数为递增,都是可以的

【7】字符串的追加操作

append关键字表示在原有字符串基础上追加字符串,跟java的append类似,后面返回的Integer为字符串的长度

第二种:哈希类型

【1】键值对存储跟获取

存储多个键值对,可以单个获取,也可以多个获取

hset 关键字表示存储键值对,后面直接跟key的名称,然后键值对紧接着跟在后面即可,需要注意的是hset每次只可以存储一个键值对,获取的时候也是每次只能获取一个,

【2】,一次性多个键值对的获取根存储

hmset,hmget表示一次可以存储多个键值对,也可以获取多个键值对,

【3】,一次性全部取出hset中的值,这里需要注意hmset中的值貌似无法一次性全部获取,

【4】,删除hash中的某一个属性

hdel关键字用来删除hash中的某一个属性,其他的属性还在

【5】删除整个hash

del 用来删除整个hash,删除后整个hash中的存储的所有属性都被删除了

【6】,这里再扩展几个不常用的

判断hash中属性是否存在,如果存在返回1,不存在返回0

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

返回当前hash中有几个属性

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

keys获取当前hash中所有key,vals获取的当前hash中所有vals

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 第三种: list结构

【1】list的插入分为左侧插入跟右侧插入

左侧插入跟右侧插入元素跟查看列表,从下面的例子很容易看出,左侧插入不管你插入时键入的顺序从左侧开始插入,先输入的在列表中的最右边的位置,然后取的时候也是从左侧开始取的,lpush->左侧插入关键字,lrange->查看列表关键字,,有个技巧 lrange  列表名  0  -1 表示列出所有元素,左右插入的通用

右侧插入跟左侧插入恰好相反,看图就可以明白

【2】左侧弹出跟右侧弹出元素

左侧弹出 lpop 表示从删掉最左边的一个元素,rpop表示删掉最右边的一个元素

【3】查看元素个数

llen表示查看list中有多少个元素,如果查看的list不存在则为0

【4】在头部或者尾部添加一个元素

lpushx  链表名称  元素值  表示在元素左侧添加一个元素,rpushx  链表名称  元素值表示在元素右侧添加一个值

【5】删除元素

lrem表示删除元素,下面的命令  lrem  test02  2  a  表示从test02中从头开始删除两个a,如果2给成负值表示从尾开始,删除两个a

【6】在指定下标修改元素

lset关键字可以在先指定list的下标,然后插入想要插入的元素值,替换掉原来元素的值

第四个: set集合类型

 set集合跟java中的set一样,存储无序不重复的元素,set的效率很高

【1】set的添加 sadd,删除 srem,查看 smembers

【2】判断set中是否包含指定元素,返回1表示包含,返回0表示不包含

【3】set的交集跟并集运算

sinter命令表示取交集部分,sunion表示取并集,当然会去重

【4】查看元素个数

scard命令表示查看set的元素个数

【5】srandmember命令表示从set中随机取出一个元素

【6】将两个set的交集存储到另一个set中,,将两个set的并集存储到另一个set中

sinterstore  set_interstore  set_a1  set_a2      //将交集存储   关键字  sinterstore  

sunionstore  sunionstore  set_a1  set_a2    //将并集存储   关键字  sunionstore  

第五个 :有序set   sorted  set

【1】元素的添加,个数查看,删除

sorted-set中:zadd为添加元素命令,后面有个整形的数字成为元素的分数,作为元素的唯一标识,添加的元素的时候先写分数,再给值

zscore命令为根据元素的值查看元素的分数

zcard命令为查看元素zise

zrem命令为删除元素,可以一次性删除多个元素

【2】,输出所有元素的值,

命令:zrange,输出元素所有值,默认由分数从小到大的顺序输出

命令:zrange ·····withscores,输出元素值跟分数,默认也是由分数从小到大的顺序输出

到这里为止,五中类型都的常用命令都介绍完毕了,

redis的通用操作命令

keys  *        //列出当前redis中所有key

keys   my*      //列出所有以my打头的key, 这里的 * 跟sql一样表示所有

del   key1  key2  key3   //一次性删除好几个key

rename  oldKeyName   newKeyName   //表示给key重命名,key的名字由原来的oldKeyName  变成了newKeyName

type  keyName     //表示查看key的类型,结果有五中【string,list,set,hash,zset】

reids特性

一个redis有16个数据库实例,下标分别为0~15,默认连接下标为0的数据库,这个跟mysql的database一样

我们可以手动选择连接那个数据库,命令为:select  1,,表示连接下标为1的数据库

事务:

multi    exec    discard

reids事务的这三个关键字跟mysql中的begin,commit,rollback,基本上是一模一样的用法,这里暂时不做介绍

 持久化:

redis将数据由缓存存入硬盘的过程称为redis的持久化操作,

rdb方式:表示设置多长时间间隔,将数据从缓存写入硬盘的操作,比如设置每间隔20秒将数据更新到硬盘一次,这种机制其实质是根据设置的时间生成一个数据文件,相当于做了一次备份操作,对于数据恢复跟容灾是一个很不错的选择。

aof方式:表示根据redis启动时到结束时候的对redis的操作日志把数据更新到硬盘的操作

 

posted @ 2017-08-03 00:18  青春不打烊  阅读(293)  评论(0编辑  收藏  举报