zoukankan      html  css  js  c++  java
  • redis学习笔记-指令部分

    redis学习笔记:

    0.下载安装包:https://redis.id/ 下载xxx.tar.gz文件,然后在Linux某个目录下解压(一般是在opt文件夹下),解压完成后进入目录cd redis-x.x.x 然后执行make命令 稍等片刻,然后执行make install 进行安装

    1.腾讯云上的redis 在/opt/目录下:如果服务没启动,那么切换到 cd /opt/redis-4.0.8目录下,(新安装的还需要编辑redis.conf文件,将daemonize no改为yes,意思是让redis服务在后台启动)然后执行 redis-server redis.conf,那么redis服务就开启了

    2.命令端如何进入redis: 在redis-4.0.8目录下,执行 redis-cli命令,就进入到控制台了,可以通过输入ping,看看是否得到pong的回应,如果回应了,说明连接成功了

    3. 字符串: set key value; get key //set name zhangfei; get name(会输出"zhangfei")

    4.哈希(hash) : hset key field value //给user1设置username为zhangfei,age为28,则写成: hset user1 username zhangfei; hset user1 age 28这样才把user1的两个属性赋值完 当然为了方便也可同时将多个key-value设置给某个键key hmset key field value [field value....] 举例:hmset user1 username zhangfei age 28 想要获取刚才设定的哈希值,通过指令: hget key field 如: hget user1 username 将会得到"zhangfei" 当然也可以一次性获取多个属性值: hmget user1 username age //将得到 "zhangfei" "28"

    5.字符串列表list:底层是一个双向链表结构,所以我们可以向表的两端添加元素,时间复杂度是o(1),同时我们可以获取列表中的某个片段 如果向列表左侧添加元素:LPUSH key value [...] // LPUSH hersolist zhangfei guanyu liubei 给herolist列表向左侧添加zhangfei、关羽、刘备 RPUSH key value [....] 向列表右侧添加元素 list的获取:使用LRANGE key start stop 比如:我们想要获取herolist从0到4的位置的数据,LRANGE herolist 0 4

    6.字符串集合set是字符串类型的无序集合,与list列表的区别在于集合中的元素是无序的,同时元素不能重复,集合中添加元素: SADD key member [....] 比如:我们给集合heroSet集合添加zhangfei、guanyu、liubei、dianwei、lvbu SADD herolist zhangfei guanyu liubei dianwei lvbu 在集合中删除元素:SREM key member [.....] 比如我们从 heroSet 集合中删除 liubei 和 lvbu 这两个元素 SREM heroSet liubei lvbu 获取集合中的所有元素 SMEMBERS key 如果想要判断集合中是否存在某个元素,可以使用SISMEMBER key member

    7.有序字符串集合:SortedSet 简称ZSET,实际上 ZSET 是在集合的基础上增加了一个分数属性,这个属性在添加修改元素的时候可以被指定。每次指定后,ZSET 都会按照分数来进行自动排序,也就是说我们在给集合 key 添加 member 的时候,可以指定 score 有序集合与列表有一定的相似性,比如这两种数据类型都是有序的,都可以获得某一范围的元素。但它俩在数据结构上有很大的不同,首先列表 list 是通过双向链表实现的,在操作左右两侧的数据时会非常快,而对于中间的数据操作则相对较慢。有序集合采用 hash 表的结构来实现,读取排序在中间部分的数据也会很快。同时有序集合可以通过 score 来完成元素位置的调整,但如果我们想要对列表进行元素位置的调整则会比较麻烦。

    如果我们想要在有序集合中添加元素和分数,使用ZADD key score member [...],比如我们给 heroScore 集合添加下面 5 个英雄的 hp_max 数值,如下表所示:

    ZADD heroScore 8341 zhangfei 7107 guanyu 6900 liubei 7516 dianwei 7344 lvbu

    如果我们想要获取某个元素的分数,可以使用ZSCORE key member,比如我们想要获取 guanyu 的分数,写成ZSCORE heroScore guanyu即可。

    如果我们想要删除一个或多元素,可以使用 ZREM key member [member …],比如我们想要删除 guanyu 这个元素,使用ZREM heroScore guanyu即可。

    我们也可以获取某个范围的元素列表。如果想要分数从小到大进行排序,使用ZRANGE key start stop [WITHSCORES],如果分数从大到小进行排序,使用ZREVRANGE key start stop [WITHSCORES]。需要注意的是,WITHSCORES 是个可选项,如果使用 WITHSCORES 会将分数一同显示出来,比如我们想要查询 heroScore 这个有序集合中分数排名前 3 的英雄及数值,写成ZREVRANGE heroScore 0 2 WITHSCORES即可。

  • 相关阅读:
    类的静态成员
    ActionController::InvalidAuthenticityToken 解决办法
    Ruby的动态特性
    (转)右下角弹出消息框
    使用 Visual C++ 2008 功能包加强 Windows 应用程序
    Ajax以responseXML返回,客户端(IE)不能分析xml问题
    css的精髓是布局,而不是样式——之二
    字符编码的一些内容
    2009年好运!牛年要牛起来
    OpenLayers介绍
  • 原文地址:https://www.cnblogs.com/zhangshitong/p/13217709.html
Copyright © 2011-2022 走看看