Redis指南-安装、五种类型命令

Redis指南-安装、五种类型命令

1.Redis概述

1.Redis是开源的,用于构建高性能、可扩展web应用的key-value内存存储系统。相比于其他key-value系统,redis具有如下特定:

  • redis在内存中保存数据,并使用硬盘持久化数据
  • redis支持五种数据类型:STRING/LIST/SET/HASH/ZSET
  • redis可以将数据写到多个slave

2.Redis优点:

  • 极速:每秒110000次写、81000次读
  • 支持多种数据类型:STRING/LIST/SET/HASH/ZSET
  • 原子化操作:所有的redis操作都具有原子性
  • 多用途:可用于缓存、消息队列、短暂存储的信息存储(web session/点击计数等)

2.Redis环境搭建

1.Ubuntu中安装:

sudo apt-get update
sudo apt-get install redis-server

2.启动(默认6379端口):

redis-server

3.客户端连接:

redis-cli
ping
//返回PONG

4.还可以下载docker版本的redis:

docker run --name redis-server -d redis 
docker run -it --link redis-server:redis-cli --rm redis redis-cli -h redis -p 6379

第一句启动docker版本redis-server,第二句启动docker版本redis-cli,-h指定redis-server的主机名或者ip

5.桌面可视化redis工具可在http://redisdesktop.com/download下载。

3. Redis配置

1.配置文件为redis根路径下的redis.conf,也可以使用CONFIG命令进行设置、读取配置。

2.CONFIG命令语法:

  • 读取:config get config_setting_name,例如:config get *读取所有命令
  • 设置:config set config_setting_name new_config_value,例如config set loglevel "notice"设置日志级别为notice

4. Redis数据类型

支持5种数据类型:

  • STRING:一组字符,key-value类型,value最多存储512个字符。
  • HASH:field-value对的集合:<key,(field-value)>,用于存储对象。可存储大于40亿个field-value对(2^32-1)。
  • LIST:有序列表,支持从头尾添加。可存储大于40亿(2^32-1)个元素。
  • SET:无序集合,元素不能重复,时间复杂度O(1)。可存储大于40亿(2^32-1)个元素。
  • SORTED SET:有序集合,元素按照score从小到大进行排序,元素不能重复,score可以重复。

5. Redis命令

1.客户端连接命令:

redis-cli -h host -p port -a password

6. Redis键

1.与key相关的命令有:

  • del key:删除key
  • dump key:返回可以的序列化形式
  • exist key:检查key是否存在
  • expire key seconds:设置key的在seconds秒后失效
  • expireat key timestamp:设置key的失效时间
  • pexpire key milliseconds:设置key在精确到毫秒后失效
  • pexpire key 设置key的失效时间,精确到毫秒
  • key pattern:查找符合模式的key
  • move key db:移动key到另一个db
  • persist key:取消key的失效时间
  • pttl key:获取精确到毫秒的key的失效时间
  • ttl key:获取精确到秒的key的失效时间
  • randomkey:获取随机key
  • rename key newkey:重命名key
  • renamenx key newkey:如果newkey不存在,重命名key为newkey
  • type key:返回key中数据的类型

7. Redis字符串

1.与字符串相关的命令有:

  • set key value:设置key-value
  • get key:获取key的value
  • getrange key start end:获取key在范围内的子串
  • getset key value:设置可key的值为value并返回其旧值
  • getbit key offset:获取key中offset位置的字节
  • mget key1 [key2..]:获取所有指定key的值
  • setbit key offset value:设置key指定offset的值
  • setex key seconds value:设置seconds秒后失效的key的值
  • setnx key value:key不存在则设置其值
  • setrange key offset value:设置offset开始的key的值
  • strlen key:获取key长度
  • mset key value[key value...]:设置多个key-value
  • msetnx key value[key value...]:如果key不存在,设置多个key-value
  • psetex key millseconds value:millseconds后失效的key-value
  • incr key:key自增
  • incrby key increment:key增加increment
  • incrbyfloat key increment:可以增加float类型的increment
  • decr ey:key自减
  • decrby key decrement:key减少decrement
  • append key value:key添加value

8. Redis哈希

1.hashes是<key,fields-value>的map。redis可以存储40亿的fields-value对。常用命令如下:

  • hdel key field [field2]:删除key下的field、field2
  • hexist key field:检查field是否存在
  • hget key field:获取key下field对应的value
  • hgetall key:获取key下所有的field-value
  • hincrby key field increment:自增increment
  • hincrbyfloat key field increment:自增float类型increment
  • hkeys key:获取key对应的所有fields
  • hlen key:获取key对应的fields的个数
  • hmget key field1 [field2]:获取field1等的值
  • hmset key field1 value1 [field2 value2]:设置多个值
  • hset key field value:设值
  • hsetnx key field value:不存在,设值
  • hvals key:获取可以对应的所有value
  • hscan key cursor [match pattern] [count count]:遍历fields和values

9. Redis列表

1.按照插入顺序排序存储,可以在头尾添加元素。最大可以存储2^32-1个元素,常用操作方法如下:

  • Blpop
  • Brpop
  • Brpoplpush
  • Lindex
  • Linsert
  • Llen
  • Lpop
  • Lpush
  • Lpushx
  • Lrange
  • Lrem
  • Lset
  • Ltrim
  • Rpop
  • Rpoplpush
  • Rpush
  • Rpushx

10.Redis 集合set

1.存储无序,不能重复的key的元素。最大2^32-1存储容量(40亿)。常用命令如下:

  • Sadd
  • Scard
  • Sdiff
  • Sdiffstore
  • Sinter
  • Sinterstore
  • Sismember
  • Smembers
  • Smove
  • Spop
  • Srandmember
  • Srem
  • Sunion
  • Sunionstore
  • Sscan

11.Redis 有序集合

1.存储有序、不能重复的key的元素。同set类似。常用命令如下:

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

推荐阅读更多精彩内容