RedisDB学习

简介:

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API


特性:
特性
1 支持数据的持久化,可将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
2 不仅支持简单的key-value类型的数据,同时将value分为list,set,zset,hash等数据结构存储
3 因redis交换数据快,所以在服务器中常采用来存储一些需要频繁调取的数据以便提高效率

数据结构:

redis是key-value的数据结构
每条数据都是一个键值对
键的类型是字符串
要注意的是:键不能重复
值的数据类型分为五种:

形式 类型
1 String 字符串
2 Hash 哈希
3 List 列表
4 Set 集合
5 Zset 有序集合

基本概念:

1.数据库没有名字,默认有16个库,通过0-15来标识连接redis数据库时
2.默认选择第一个数据库,即0
3.redis里执行get或hget不存在的key或field时返回值在终端显式的是”(nil)”


基本操作:

1.连接redis数据库:redis-cli
2.退出:exit
3.操作服务器:service redis start/stop/restart
4.切换数据库:select \color{red}{n}


全局键(key)的操作

#查看所有的键(key):keys *  (注意:s与*之间有空格)

127.0.0.1:6379> keys *
1) "name"
2) "age"

#---------------------
#查看键(key)是否存在:exists key (返回1则表示存在,返回0则表示不存在)

127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists sex
(integer) 0

#---------------------
#删除键值对:del key

#---------------------
#改名:rename key new_key

127.0.0.1:6379> get age
"20"
127.0.0.1:6379> rename age num
OK
127.0.0.1:6379> get num
"20"

#---------------------
#设置过期时间:expire key seconds  (注意:seconds是整数类型)
(查看时间:ttl,删除过期时间:persist key)

127.0.0.1:6379> expire age 20    #给名为age的键设置过期时间为20s
(integer) 1
127.0.0.1:6379> ttl age          #查看age的过期剩余时间(已过期,即已经删除)
(integer) -2
127.0.0.1:6379> persist age      #删除过期时间
(integer) 0



String类型

string是redis最基本的数据类型
一个key对应一个value

基本操作:

#设置数据:set key value

127.0.0.1:6379> set name jayss          #创建一个键(key)为name,值(value)为jayss的数据
OK

#---------------------
#查看数据:get key

127.0.0.1:6379> get name                #查看键(key)为name的值
"jayss"

#---------------------
#追加数据:append key value     
         
127.0.0.1:6379> append age 20           #添加键(key)为age,值(value)为20的数据
(integer) 
127.0.0.1:6379> get age
"20"

#---------------------
#删除数据:del key

127.0.0.1:6379> get age                  #删除键(key)为age的数据
"20"
127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> get age
(nil)



Hash类型

hash又叫哈希,是一个键值对(key-value)的类型
是string类型的field和value的映射表

例如:
information {name:jayss,age:20}

information name,age jayss,20

基本操作:

#添加数据:hset key field value

127.0.0.1:6379> hset information name jayss      #添加键为information,域为name,值为jayss的数据
(integer) 1
127.0.0.1:6379> hset information age 20          #添加键为information,域为age,值为20的数据
(integer) 1

#---------------------
#查看域值:hget hvals key

127.0.0.1:6379> hget information name
"jayss"
127.0.0.1:6379> hget information age
"20"

#---------------------
#查看所有的field:hkeys key

127.0.0.1:6379> hkeys information
1) "name"
2) "age"

#---------------------
#查看所有的value:hvals key

127.0.0.1:6379> hvals information
1) "jayss"
2) "20"


List类型

1.list类型是一个字符串列表
2.可在表头或尾部添加/删除数据
3.在插入数据时,若该键(key)不存在,则redis会创建该键

基本操作:

#添加数据:rpush key value  [value1,value2...](尾部添加数据)
lpush key value [value1,value2...](头部添加数据)

127.0.0.1:6379> rpush name jayss
(integer) 1
127.0.0.1:6379> rpush num [1,2,3,4,5]
(integer) 1
127.0.0.1:6379> keys *
1) "num"
2) "name"

#---------------------
#查看数据:lrange key start stop
#查看某个数据:lindex key index

127.0.0.1:6379> lrange num 0 4
1) "[1,2,3,4,5]"

#---------------------
#删除数据:rpop key
lpop key (头部删除数据)

127.0.0.1:6379> keys *
1) "num"
2) "name"
127.0.0.1:6379> rpop num
"[1,2,3,4,5]"
127.0.0.1:6379> keys *
1) "name"


Set类型

set类型为无序的字符集合
元素具有唯一性,不重复

基本操作:
#添加数据:sadd key member [member1,member2...]

127.0.0.1:6379> sadd name jayss
(integer) 1
127.0.0.1:6379> sadd num [1,2,3,4]
(integer) 1
127.0.0.1:6379> keys *
1) "name"
2) "num"

#---------------------
#查看数据:smembers key

127.0.0.1:6379> smembers name
1) "jayss"
127.0.0.1:6379> smembers num
1) "[1,2,3,4]"

#---------------------
#随机删除:spop key

127.0.0.1:6379> keys *
1) "name"
2) "num"
127.0.0.1:6379> spop name
"jayss"
127.0.0.1:6379> keys *
1) "num"

#---------------------
#指定删除:srem key member [member1,member2...]



欢迎技术交流

WeChat......

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

推荐阅读更多精彩内容