REmote DIctionary Server(redis)常用指令

Redis 简介REmote DIctionary Server(Redis)

是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。

Redis 优势

性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis与其他key-value存储有什么不同?

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
启动redis: redis-server.exe conf/redis-6379.conf
数据类型:hash, string, list, set, nil, sortedset /zset

操作指令

string类型指令

添加修改数据:             set key value   >set username zhangsan 
获取数据:                   get key         >get username 
删除数据:                   del key         >del username
判定性添加数据:        setnx key value     >setnx username zhangsan
添加修改多个数据:           mset key1 value1 key2 value2 …
                     >mset k1 v1 k2 v2 k3 v3 ……
获取多个数据:                  mget key1 key2 ……      > mget k1 k2 k3 ……
获取数据字符个数(字符串长度):strlen key  
>strlen username            (return 8)
>strlen k1                  (return 2)
追加信息到原始信息后面,若没有就创建:
                    append key value
                    >append username 1      (zhangsan1)
                    >append password 123    (123)
设置整形数据自增/自减(默认自增/自减1)
                    incr key 
                    >set num 1
                    >incr/decr num          (2)
                    >incr/decr num          (3)
设置整形数据值自增/自减指定数
                    incrby/decrby key increment 
                    >incrby/decrby num 10   (13)
                    incrbyfloat key increment
                    >incrbyfloat num 1.5    (14.5)
设置数据值具有指定的生命周期(支持自动过期)
                    setex key seconds value
                    setex code 10 abcd
                    milliseconds 毫秒

hash基础操作

添加修改数据        hset key field value
                    >hset user:001 name zhangsan
                    hmset key field1 value1 field2 value2 …
                    >hmset user:001 password 123 age 18
                    hsetnx key field value
                    hsetnx user:001 name lisi
根据key和field获取单个/多个value
                    hget key field
                    >hget user:001 name
                    hgetall key *
                    >hgetall user:001
删除数据            >hdel key field1 [field2 field3…]
                    >hdel user:001 name
                    >hdel user:001 password age
根据key获取field的数量
                    hlen key 
                    >hmset user:001 name zhangsan password 123 age 18
                    hlen user:001
判断指定field是否存在
                    hexists key field
                    >hexists user:001 name      (1)
                    >hexists user:001 name111   (0)
根据key获取单个/所有的字段名field
                    hkey key
                    >hkey user:001
                    hvals key 
                    hvals user:001
设置指定字段的数值增加指定范围
                    hincrby key field increment
                    hincrbyfloat key field increment
                    hget user:001 age           (18)
                    hincrby user:001 age 1      (19)
                    hincrby user:001 age -2     (17)

list基础操作

添加数据—从左侧添加
                    lpush key value1 [value2 value3 …]
                    >lpush list1 a b c      (3--cba)
从右侧添加           rpush key value1 [value2 value3 …]
                    >rpush list1 d e f      (6--def) 
当前数据为:cbadef
范围获取            lrang key start stop
                    lrang list1 0 -1        (cbadef)
                    lrang list1 0  2        (cba)
                    lrang list1 -3 -1       (def)
获取规则            1.从左到右索引cbadef---(0,1,2,3,4,5,6) …
                    2.从右到左索引cbadef---(-6,-5,-4,-3,-2,-1…)
                    Index key index
                    index list1 0
                    index list1 1
                    index list1 -1
移除并返回最左侧和最右侧的元素
                    lpop key 
                    rpop key
                    >lpop list1         (c)
                    >lpop list1     (f)
根据key获取value的个数
                    llen key 
                    llen list1      (4)

key的基础操作

删除操作:del key    >set aa bb 
                    >del aa
                    >get aa         (nil)
                    >hash hash1 k1 v1
                    >hgetall hash1  (k1, v1)
                    >del hash1
                    >hgetall hash1  (empty)
判断key是否存在
                    >set aaa bbb
                    >exists aaa     (1)
                    >exists bbb     (0)
获取key的类型
                    >set mystring hellostring
                    >hset myhash k1 v1
                    >type mystring
                    >type myhash
对list,set中的数据进行排序
                    >sort key
                    >sort key desc
                    >lpush list1 11 2 33 7 5 18
                    >sort list1         (2,5,7,11,18,33)
                    >sort list1 desc    (33,18,11,7,5,2)
对list中的字符串进行排序
                    >sort key alpha
                    >sort key desc alpha
                    >lpush list2 a b c d
                    >sort list2 alpha   (a,b,c,d)
重命名key
                    >set username zhangsan 
                    >set username2 lisi
                    >rename username username2
                    >get username       (nil)
                    >get username2      (zhangsan)
获取key的有效时间
                    >del username zhangsan
                    >ttl username       (-1)
                    >ttl username2      (-2)
                    >setex username3 30 wangwu 
                    >ttl usernmae3      (21)
                    >pttl usernmae2     (15840)
为指定key设置有效时间
                    >hset hash1 k1 v1
                    >ttl hash1
                    >expire hash1 30        (1)
                    >ttl hash1          (20)
                    >hset hash2 k2 v2
                    >ttl hash2
                    >expire hash2 3000
                    >ttl hash2          (26)
                    >pttl hash2             (21380)
切换key从时效性转换为永久性
                    setex username 60 zhangsan
                    ttl username            (55)
                    persist username        (1)
                    ttl username            (-1)
                    
                    
存:zadd key score value
取:方式一:仅获取value 不带分数score 
    zrange key start end 
    方式二:获取value和score
    zrange key start end withscores
删:zrem key value

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容