最近使用了Memcache,带来的便利已经让我欣喜若狂。开启了另一种又快又好的方式存储和读取数据。中间经过了一番折腾,学习了mysql,终于有学到了redis。

Redis的全名是Remote Dictionary server (远程字典服务器).是一个基于内存的网络存储系统。

redis比Memcache支持的数据类型更为广泛,操作更加灵活。Memcache只支持key => value的数据存储方式。而Redis则支持更多的数据类型。

Redis的数据类型共计5种,分别是:

1、string(字符串)

2、hash(哈希表)

3、list (双向队列)

4、set(集合)

5、zset(集合)

String

1、set 命令  set key value

2、get 命令 get key

3、setnx  key value                                               只有当这个键不存在的时候才设置,若键存在则会返回0(nil)表示失败,防止覆盖。

setnx 的命令全称是:set if no exists;

4、setex key time content                                     设置一个key的到期时间。

setex 是set expiration 的缩写。

5、ttl  key                      可以查看某个key的剩余生存时间。

ttl 是time to life 的缩写。

6、setrange   key num content                            修改一个值 ,从第几个字符开始修改。字符串的第一个字符默认从0开始。

7、mset key1 name1 key2 name2 keyn namen   批量设置key => value值。

mset 是multi set的缩写。

8、mget  key1 key2 keyn                                     批量获取设置的值。

9、msetnx    name1 key2 name2 keyn namen    批量设置不存在的值,如果其中一个key存在,则设置失败。

10、getrange   key  startIndex   endIndex           取出某个字符串  startIndex 起点索引,  endIndex 终点索引。

可以使用getrange key 0 -1 来取出所有的字符。

11、strlen key                                                       得到该字符串的长度。

12、incr    key                                                       每次增加1

incr 是increment的缩写

12、decr   key                                                       每次减少1

decr是decrement的缩写

13    decrby  key num    incrby key by                 在数值的基础上增加或减少num。

14、append  key   content                                   如果该字符串存在,则加载末尾。

15、del  key                                                         删掉该key,key删掉后,值也一并会删掉。

16、keys *                                                            查看当前所有的key

Hash

1、hset  name key value                                     类似于二维数组

2、hget name key                                               类似于二维数组取值。

3、hsetnx  name key vaue                                  只有不存在才能设置。

4、hexists  name key                                          判断hash表中某个键是否存在。

5、hlen      name                                                 统计hash表的纬度,类似于count()统计数组元素个数。

6、hkeys    name                                                列出hash表name字段的所有key,相当于array_keys()

7、hvals     name                                                列出hash表name字段所有的values ,相当于array_values()

8、hgetall  name                                                列出hash表中所有的name和values。

9、hincrby name key  num                                同字符串操作。

10、hdel     name key                                        只删除该字段下的该key。

List

List是一个链表结构,主要的功能就是push于pop操作。redis的list子元素其实每个都是一个string类型。操作方式上是队列的操作,十分有意思。

1、lpush listname str1 str2 str3 str4                  从队列的左往右插。

2、rpush listname str1 str2 str3 str4                 从队列的从右往左插。

3、lrange listname 0 -1                                     取出全部的链表

4、linsert  listname before | insert   str1  str     在指定的字符前或后添加一个字符。

5、lset      listname  index   str                          替换链表指定索引的值。

6、lrem    listname  n         指定值                     n>0.从左向右删除n个元素。n < 0从右向左删除n个元素。n=0 删除所有值为指定值的值。

7、lpop   listname                                            删除链表最左的一个。

8、rpop  listname                                            删除链表最后的一个。

9、rpoplpush                                                  从源列表的右边删除一个,并加入到目标列表的右边。

10、lindex   listname   index                           获取链表中指定下标的的值。

11、llen       listname                                       获取链表的元素的个数。

set

set是一个集合类型,他是string类型的无序集合。对集合我们可以采取并集、交集、差集。通过这些操作我们可以实现社交网站中的好友推荐和blog的tag功能,且不允许有重复值。

1、sadd   键   str1 str2 str3 str3 str4              在set集合中添加无序集合。

2、smembers   键                                          获取set集合中的元素。

3、srem   键    str1 str2                                  删掉集合中的一个或者多个元素。

4、spop                                                         从集合中随机删除一个元素,并返回这个元素的值。

5、srandmember                                          从集合中随机返回一个元素,不返回。

6、scard   键                                                  返回集合的元素个数。

7、sismember  键  值                                     判断某个值是否存在于集合中

8、sdiff            键1 键2                                  返回键1 与 键2的差集。

9、sdiffstore    新键   键1 键2                        返回键1 与 键2 的差集,并插入到新的集合中。

10、sinter        键1  键2                                 返回键1 与 键2 的交集。

11、sinterstore 新键 键1 键2                         返回键1 与 键2 的交集, 并插入到新的集合中。

12、sunion     键1 键2                                   返回键1 与 键2 的并集,并去除重复的数据。

13、sunionstore 新键 键1 键2                       返回键1 与 键2 的并集,并将并集插入到新的集合中。

14、smove      键1 键2  str1                          将键1 中的某个值,放进键2 中。

sorted set

顾名思义,这个集合集可以排序。

1、zadd  集合  scores  names                          特别适合添加成绩,以及排名信息。会自动排序,从小到大。

2、zrange 集合  0 -1 withscores                      返回所有的数字以及名字。

3、zrevrange 集合 0 -1 withscores                  rev是reverse(翻转)的缩写。返回从大到小的顺序。

4、zrangebyscore  集合 起始分数  截至分数  withscores

返回某个捍卫内的信息。

5、zrem     集合     值1 值2                                删除集合中的一个值或者多个值。

6、zincrby  集合    增量  值。                            给有序集合中制定的成员添加分数。

7、zrank    集合     值                                        返回有序集合中指定值的下标,从前往后。

8、zrevrank 集合   值                                        返回有序集合中指定值的下标,从后向前。

9、zcount    集合   起始分数 结束分数。            返回有序集合中起始分数与结束分数之间的元素个数。

10、zcard    集合                                               返回有序集合中元素的个数。

11、zremrangebyrank  集合 起始下标 结束下标

                          删除有序集合中,从开始index 到结束index之间的元素。

12、zinterstore  新集合 集合个数  集合1 集合2  返回集合的交集放到新集合中去。 inter 是interscate[ˌɪntərˈsekt]

13、zunionstore 新集合 集合个数 集合1 集合2  返回集合的并集放到新集合中。

和redis谈一场恋爱(第二天约会了解彼此)的更多相关文章

  1. 和redis谈一场恋爱(第一天邂逅)

    前几天玩了下Memcache,发现挺好用.知道redis是Memcache的妹妹.我本着大公无私和博大的胸怀,看着redis孤零零的躺在角落里,委实觉得可怜.心里总有个声音在说,你既然已经爱上了Mem ...

  2. 怎样跟程序猿谈一场没有Bug的恋爱

    <iframe width="580" height="90" align="center,center" id="cpro ...

  3. M1 和 Docker 谈了个恋爱

    出于开源项目的需要,我准备把之前在 windows 下运行的开源项目移植到 Mac 上跑得试下,但是 Mac M1 芯片并不能很好地支持 Docker,这不,发现 Docker 也正式支持 Mac 了 ...

  4. Keepalived+Redis高可用部署(第二版)

    更新 20150625 脚本由5个减少为4个,sh脚本指令做了精简. 修改了另外3个脚本,在日志里增加了日期显示. 新增redis数据类型,持久化,主从同步简介. 新增hiredis简介. 新增c语言 ...

  5. redis集群在线迁移第二篇(redis迁移后调整主从关系,停掉14机器上的所有从节点)-实战二

    变更需求为: 1.调整主从关系,所有节点都调整到10.129.51.30机器上 2.停掉10.128.51.14上的所有redis,14机器关机 14机器下线迁移至新机房,这段时间将不能提供服务. 当 ...

  6. Redis常用命令速查 <第二篇>

    一.Key Key命令速查: 命令 说明 DEL 删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量 DUMP 序列化给定 key,返回被序列化的值,使用 RES ...

  7. Redis常用命令速查 <第二篇>【转】

    一.Key Key命令速查: 命令 说明 DEL 删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量 DUMP 序列化给定 key,返回被序列化的值,使用 RES ...

  8. 计蒜客-第五场初赛-第二题 UCloud 的安全秘钥(简单)

    每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作.作为一家安全可信的云计算平台,秘钥的安全性至关重要.因此,UCloud 每年会对用户的秘钥进行安全性评估,具体的评估方 ...

  9. 这可能是新手最容易入门的JVM讲解(不过是一场恋爱)

    作者:请叫我红领巾,转载请注明出处http://www.cnblogs.com/xxzhuang/p/7453746.html 一.写在前面 首先,本篇文章并没有涉及原理,而是在笔者撸了<深入理 ...

随机推荐

  1. 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能

    以往的Android开发有一个头疼的且拖慢速度的问题,就是你每改一行代码要想看到结果必须要编译运行到手机或者模拟器上,而且需要从头(可能是登录界面)一直点击到你修改的界面为止.开发一个完整的Andro ...

  2. [BZOJ 1260][CQOI2007]染色(DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1260 分析: f[i][j]表示i~j刷成s[i]~s[j]这个样子需要的最小次数 则 ...

  3. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    [整理]   在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...

  4. android中的图片处理

    大图片处理 大图片处理是将原来像素高的转换为像素低的图片,比如原来图片是1024*768的,而手机屏幕是800*600的,这时候就需要进行转换.转换的方式很简单就是等比例缩放. package xid ...

  5. ASP.NET中实现Session的负载均衡

    据我目前所知有2种方法,如下: 1.利用微软提供的解决方案 参考网址:http://blog.maartenballiauw.be/post/2008/01/23/ASPNET-Session-Sta ...

  6. CSS Hack技术介绍及常用的Hack技巧

    一.什么是CSS Hack? 不同的浏览器对CSS的解析结果是不同的,因此会导致相同的CSS输出的页面效果不同,这就需要CSS Hack来解决浏览器局部的兼容性问题.而这个针对不同的浏览器写不同的CS ...

  7. 写启动界面Splash的正确姿势,解决启动白屏(转)

    原文链接:http://www.jianshu.com/p/cd6ef8d3d74d 从我学习写第一个android项目以来,我都是这样写着启动界面: 在里面做一些事,比如:第一次启动时拷贝数据. 然 ...

  8. spring 集成shiro 之 自定义过滤器

    在web.xml中加入 <!-- 过期时间配置 --> <session-config><session-timeout>3</session-timeout ...

  9. 类似掌盟的Tab页 Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签 (转)

    原博客地址  :http://blog.csdn.net/xiaanming/article/details/10766053 本文转载,记录学习用,如有需要,请到原作者网站查看(上面这个网址) 之前 ...

  10. iOS不得姐项目--精华模块上拉下拉的注意事项,日期显示,重构子控制器,计算cell的高度(只计算一次),图片帖子的显示

    一.上拉下拉注意事项 使用MJRefresh中的上拉控件自动设置透明 当请求下页数据通过page的时候,注意的是上拉加载更多数据失败的问题,下拉加载数据失败了,页数应该还原.或者是请求成功的时候再将页 ...