redis_1

启动

启动服务端

./redis-server

指定要加载的配置文件

./redis-server ../redis.conf

默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。

启动客户端

./redis-cli

//用set指令来设置key、value

127.0.0.1:6379> set name "roc" OK

//来获取name的值

127.0.0.1:6379> get name "roc"

//通过客户端来关闭redis服务端

127.0.0.1:6379> shutdown 
127.0.0.1:6379>

数据结构

redis是一种高级的key:value存储系统,其中value支持五种数据类型:
1.字符串(strings)
2.字符串列表(lists)
3.字符串集合(sets)
4.有序字符串集合(sorted sets)
5.哈希(hashes)
而关于key,一下几点需要注意:
1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;
2.key也不要太短,太短的话,key的可读性会降低;
3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd。

字符串

strings类型是一个很基础的数据类型

set mystr "hello world!" //设置字符串类型
get mystr //读取字符串类型

字符串可以进行数值操作

incr_num.png

在遇到数值操作时,redis会将字符串类型转换成数值。由于INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果

list

redis中的lists在底层实现上并不是数组,而是链表。对于一个具有上百万个元素的lists来说,在头部和尾部插入一个新元素,其时间复杂度是常数级别的,比如用LPUSH在10个元素的lists头部插入新元素,和在上千万元素的lists头部插入新元素的速度应该是相同的。链表型lists的元素定位会比较慢,而数组型lists的元素定位就会快得多。

lists的常用操作包括LPUSH、RPUSH、LRANGE等。我们可以用LPUSH在lists的左侧插入一个新元素,用RPUSH在lists的右侧插入一个新元素,用LRANGE命令从lists中指定一个范围来提取元素。

127.0.0.1:6379> lpush tlist "1"
(integer) 1
127.0.0.1:6379> rpush tlist "2"
(integer) 2
127.0.0.1:6379> lpush tlist "0"
(integer) 3
127.0.0.1:6379> lrange tlist 0 1
1) "0"
2) "1"
127.0.0.1:6379> lrange tlist 0 -1
1) "0"
2) "1"
3) "2"
127.0.0.1:6379> 

lists的应用相实例:
1.我们可以利用lists来实现一个消息队列,而且可以确保先后顺序,不必像MySQL那样还需要通过ORDER BY来进行排序。
2.利用LRANGE还可以很方便的实现分页的功能。
3.在博客系统中,每片博文的评论也可以存入一个单独的list中。

set

redis的集合,是一种无序的集合。集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等

127.0.0.1:6379> sadd tset "one"
(integer) 1
127.0.0.1:6379> sadd tset "two"
(integer) 1
127.0.0.1:6379> smembers tset
1) "one"
2) "two"
127.0.0.1:6379> sismember tset "one"
(integer) 1
127.0.0.1:6379> sismember tset "one1"
(integer) 0
127.0.0.1:6379> 
sunion tset tset  //求并集

zset

有序集合(sorted sets)。有序集合中的每个元素都关联一个序号(score),这便是排序的依据。我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等

127.0.0.1:6379> zadd tzset 1 "baidu"
(integer) 1
127.0.0.1:6379> zadd tzset 3 "360"
(integer) 1
127.0.0.1:6379> zrange tzset 0 -1
1) "baidu"
2) "360"
127.0.0.1:6379> zrange tzset 0 -1 withscores 
1) "baidu"
2) "1"
3) "360"
4) "3"
127.0.0.1:6379> 

hash

用于处理对象数据

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

推荐阅读更多精彩内容

  • redis是一个以key-value存储的非关系型数据库。有五种数据类型,string、hashes、list、s...
    林ze宏阅读 962评论 0 0
  • 本文为笔者对在学习Redis过程中所收集资料的一个总结,目的是为了以后方便回顾相关的知识,大部分为非原创内容。特此...
    EakonZhao阅读 14,358评论 0 9
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 60,974评论 24 626
  • 今天是2017 年12月22日,到今天为止我已经失业了6天了,从12月16日离开那个是非之地,似乎很多是非就已经离...
    常山赵云阅读 93评论 0 0
  • 一、准备工作 1、创建工程:macOS -> Command Line Tool 二、开始探究 1、以NSObje...
    春暖花已开阅读 1,923评论 0 3