zoukankan      html  css  js  c++  java
  • redis 数据操作

     

     字符串string
     hash(哈希)
    set集合
    list列表
    zset有序集合

    Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。

    Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,

    它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

     字符串string

    string操作

    创建:

    set name xxx          set age 18

    查看:

    get name # "xxx"   
    get age # "18"

    设置过期时间:

    expire name 20(秒)

     查看时间:(没设置时间则返回-1,永久;不存在的则返回-2)

    ttl name    

     创建并同时设置时间:

    setex name 20 xxx   或       set name xxx ex 20

    字符串追加:

    append name 666   # xxx666

    多字符串创建:

    mset name xxx age 18 sex nan (不能用中文) key value key value .......

    多字符串查看:

    mget name age sex key key ....

    查看所有的键值:

    keys *

    删除:(适用于所有的类型)

    del key

    检查是否存在:(1或0,布尔值,True或Flase)

    exists name # 1

    查看类型:

    type name

    运算:

    incr num (自加1)
    decr num(自减1)
    
    
    incrby num 10 (自加10)
    decrby num 10 (自减10)

     hash(哈希)

    哈希,形如:key : (field : value)

    创建:(可以理解为users用户,name为xxx)

    hset users name xxx

    查看:

    hget users name # "xxx"

    删除:

    hdel users name

    多创建:

    hmset users name xxx age 18 sex nan(不能有中文)

    多查看:

    hmget users name age sex ...

    查看全部键值对:

    hgetall users
    # 输出:
    # 1) "name"
    # 2) "xxx"
    # 3) "age"
    # 4) "18"
    # 5) "sex"
    # 6) "nan"

    查看全部键:

    hkeys users
    # 输出:
    # 1) "name"
    # 2) "age"
    # 3) "sex"

    查看全部值:

    hvals users
    # 输出:
    # 1) "xxx"
    # 2) "18"
    # 3) "nan"

    查看长度:

    hlen users # 3

    set集合

    创建:(集合的特点是:有序,无重复)

    sadd set 1 2 3 4 5 6

    查看:

    smembers set

    删除元素:

    srem set 3
    # 还剩 1 2 4 5 6 

    移动:

    sadd set2 3 4 5 6 7 8
    smove set set2 1
    # set   (2 4 5 6)
    # set2 (1 3 4 5 6 7 8)

    是否存在于集合:

    sismember set 5
    # 返回1 于 0  

    交集:

    sinter set set2
    # 4 5 6

    并集:

    sunion set set2
    # 1 2 3 4 5 6 7 8

    差集:

    sdiff set2 set
    # 1 2 3 7 8

    list列表

    首先,需要先了解栈和队列的概念:

    栈  先进后出:类比弹夹上的子弹,最后上进弹夹的子弹第一个使用,砌墙的板砖,后来居上

    队列  先进先出:排队打饭,先到先得

    创建列表:

    左添加:(栈的形式添加)

    lpush list 1 2 3 4 5 
    # 输出:
    1) "5"
    2) "4"
    3) "3"
    4) "2"
    5) "1"

    右添加:(队列的形式添加)

    rpush list 1 2 3 4 5
    # 输出:
    1) "1"
    2)  "2"
    3)  "3"
    4)  "4"
    5)  "5"

    查看列表:

    lrange list 0 -1   # 索引方式查看  0(第一位) -1 (最后一位)

    查看长度:

    llen list   # 返回数字

    查看指定元素:(索引)

    lindex list 3 # 从第零位开始  此处查看的是第4个元素

    删除元素:

    lpop list  # 从左边开始删除
    rpop list  # 从右边开始删除

    删除指定个数的元素:

    lrem list 3(个数) 5(元素)
    # 表示从上往下删除3个‘5’这个元素
    # 如果是-3 则表示从下往上删除3个‘5’这个元素

    zset有序集合

    创建:(有序集合存在一个权重的概念)

    zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g
    
    # 输出:
    # 1) "a"
    # 2) "b"
    # 3) "c"
    # 4) "d"
    # 5) "e"
    # 6) "f"
    # 7) "g"
    
    # 左边权重,右边元素

    查看:

    zrange zset 0 -1   # 索引值,第一个和最后一个

    倒序查看:

    zrevrange zet 0 -1
    # 输出:
    # 1) "g"
    # 2) "f"
    # 3) "e"
    # 4) "d"
    # 5) "c"
    # 6) "b"
    # 7) "a"

    删除:

    zrem zset g(元素)

    元素值查看查看对应索引值:

    zrank zset a    # 0(索引值)

    倒叙查看元素值相对对索引值;

    zrevrank zset a    # 6   ('g'之前已被删除)

    查看个数:

    zcard zset   # 6

    查看权重:

    zscore zset a # 1(权重)
    zscore zset f  # 6(权重)

    返回有序集合中score(权重)在给定区间的元素:

    zrangebyscore zset 3 5 withscores  # 查看权重在3 和5之间的元素(闭区间)
    # 输出:
    1) "c"
    2) "3"
    3) "d"
    4) "4"
    5) "e"
    6) "5"

    返回有序集合中score(权重)在给定区间的数量:

    zcount zset 3 5 # 权重在3和5之间的元素个数
    # 输出: 3

    删除有序集合中索引值在给定的区间的元素:

    zremrangebyrank zset 3 5  # 删除索引值3到5之间的元素(闭区间)
    # 返回数字3   表示d e f 已经被删除了
    # 还剩a b c

    删除有序集合中权重在给定区间的元素:

    zremrangebyscore zset 1 3  # 删除权重在1到3的(闭区间)
    # 返回数字3  表示a b c 已经被删除了
    # 现有序集合zset为空
  • 相关阅读:
    [转]如何从无到有建立推荐系统
    sql语句查询重复值
    推荐系统开发中十个关键点整理
    mongodb中的副本集搭建实践
    Unicode对象
    5W1H
    Python中实现switch分支结构
    数据结构-跳跃表
    redis入门笔记(3)
    redis入门笔记(2)
  • 原文地址:https://www.cnblogs.com/pywjh/p/14785917.html
Copyright © 2011-2022 走看看