Redis 基础命令

手撸代码,如有错误请联系QQ:2567828851


下载、安装、使用:

想要windows版本的小伙伴可以到【这里】去下载

1.linux版本直接用几条命令来下载,解压,和编译吧

Sanqiushu:~$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
Sanqiushu:~$ tar xzf redis-5.0.3.tar.gz
Sanqiushu:~$ cd redis-5.0.3
Sanqiushu:~/redis-5.0.3$ make

2.编译完成后进入src目录使用启动服务端

Sanqiushu:~/redis-5.0.3$ cd src
Sanqiushu:~/redis-5.0.3/src$ ./redis-server

windows端的可以在cmd中输入 redis-server 来启动服务端(如果安装的时候没有点加入环境变量的话可以进入安装目录下的src目录按Shift+鼠标右键选择打开PowerShell或cmd然后执行命令)

3.进入相应目录打开客户端连接

Sanqiushu:~$ cd redis-5.0.3/
Sanqiushu:~/redis-5.0.3$ ./src/redis-cli
127.0.0.1:6379>

String类型对应操作

set -- 设置一个键对应的值(键不存在会被创建)

用法:
set key value [expiration EX seconds|PX milliseconds] [NX|XX]
EX 是指暂存时间(秒)
例如:
127.0.0.1:6379> set animal 'Cat'
OK

get -- 得到一个键对应的值

用法:
get key
例如:
127.0.0.1:6379> get animal
"Cat"

append -- 为一个键对应的值进行拼接

用法:
append key value
例子:
127.0.0.1:6379> append animal ' Dog'
(integer) 7
127.0.0.1:6379> get animal
"Cat Dog"
127.0.0.1:6379>

mset -- 设置多个键的值(键不存在会被创建)

用法:
mset key value [key value ...]
例子:
127.0.0.1:6379> mset user1 'xiaoming' user2 'lilei'
OK
127.0.0.1:6379>

mget -- 获取键对应的值

用法:
mget key [key ...]
例子:
127.0.0.1:6379> mget user1 user2 animal
1) "xiaoming"
2) "lilei"
3) "Cat Dog"
127.0.0.1:6379>

del -- 删除一个键值对

用法:
del key [key ...]
例子:
127.0.0.1:6379> del user2
(integer) 1
127.0.0.1:6379>

incr、decr 自增 、自减

用法:
incr key
decr key
例子:
127.0.0.1:6379> set num 8
OK
127.0.0.1:6379> incr num
(integer) 9
127.0.0.1:6379> decr num
(integer) 8
127.0.0.1:6379>

List对应操作

lpush -- 从左插入一个数据(从队列头部插入一个数据)

用法:
lpush key value [value ...]
例子:
127.0.0.1:6379> lpush q1 'Jhon' 'Cat' 'Amy'
(integer) 3

rpush -- 从右插入一个数据(从队列尾部插入一个数据)

用法:
rpush key value [value ...]
例子:
127.0.0.1:6379> rpush q1 'Bob'
(integer) 4

llen -- 查看队列长度

用法:
llen key
例子:
127.0.0.1:6379> llen q1
(integer) 4
127.0.0.1:6379>

lrange -- 查看队列内容

用法:
lrange key start stop
例子:
127.0.0.1:6379> lrange q1 0 -1
1) "Amy"
2) "Cat"
3) "Jhon"
4) "Bob"

与python类似-1代表倒数第一位,也就是最后一个

lpushx -- 向存在的列表中左插入一个值(插入不存在的列表时不做任何操作)

用法:
lpushx key value
例子:
127.0.0.1:6379> lpushx q1 'zhang'
(integer) 5
127.0.0.1:6379> lrange q1 0 -1
1) "zhang"
2) "Amy"
3) "Cat"
4) "Jhon"
5) "Bob"
127.0.0.1:6379> lpushx q2 'zhang'
(integer) 0
127.0.0.1:6379>

rpushx -- 向存在的列表中右插入一个值(插入不存在的列表时不做任何操作)

ltrim -- 左截取一定长度的列表(剩下的删除)

用法:
ltrim key start stop
例子:
127.0.0.1:6379> ltrim  q1 0 2
OK
127.0.0.1:6379> lrange q1 0 -1
1) "zhang"
2) "Amy"
3) "Cat"
127.0.0.1:6379>

lpop -- 左删除列表中的一个值

用法:
 lpop key
例子:
127.0.0.1:6379> lpop q1
"zhang"
127.0.0.1:6379> lrange q1 0 -1
1) "Amy"
2) "Cat"
127.0.0.1:6379>

rpop -- 右删除列表中的一个值


Set类型相关操作

sadd -- 向集合中加入元素

用法:
sadd key member [member ...]
例子:
127.0.0.1:6379> sadd zoo Cat Dog
(integer) 2
127.0.0.1:6379>

这里的Cat 和 Dog 可以不加引号

smembers -- 查看集合中的元素

用法:
 smembers key
例子:
127.0.0.1:6379> smembers zoo
1) "Dog"
2) "Cat"
127.0.0.1:6379>

srem -- 从集合中移除元素

用法:
srem key member [member ...]
例子:
127.0.0.1:6379> srem zoo Cat
(integer) 1
127.0.0.1:6379>

sismember -- 查看某个值是否在某个集合中

用法:
sismember key member
例子:
127.0.0.1:6379> sismember zoo Dog
(integer) 1
127.0.0.1:6379> sismember zoo Cat
(integer) 0
127.0.0.1:6379>

1 代表存在,0 代表不存在

sdiff -- 比较集合间的不同(以第一个集合为基准)

用法:
sdiff key [key ...]
例子:
127.0.0.1:6379> smembers zoo
1) "Dog"
2) "Cat"
127.0.0.1:6379> smembers zoo1
1) "Cow"
2) "Cat"
127.0.0.1:6379> sdiff zoo zoo1
1) "Dog"
127.0.0.1:6379>

先查看zoo 、zoo1里有什么,再比较一下不同

sinter -- 计算集合的交集

用法:
sinter key [key ...]
例子:
127.0.0.1:6379> sinter zoo zoo1
1) "Cat"
127.0.0.1:6379>

sunion -- 计算集合的并集

用法:
sunion key [key ...]
例子:
127.0.0.1:6379> sunion zoo zoo1
1) "Cow"
2) "Dog"
3) "Cat"
127.0.0.1:6379>

Hash相关操作

hset/hget -- 设置/获取散列值

用法:
hset key field value
hget key field
例子:
127.0.0.1:6379> hset news:1 title 'News Title'
(integer) 1
127.0.0.1:6379> hset news:1 content 'News Content'
(integer) 1
127.0.0.1:6379> hget news:1 title
"News Title"
127.0.0.1:6379> hget news:1 content
"News Content"

这里(news:1)是一个整体,在这里作为key

hmset/hmget -- 设置/获取多对散列值

用法:
hmset key field value [field value ...]
hmget key field [field ...]
例子:
127.0.0.1:6379> hmset news:2 title 'Title2' content 'Content2' is_valid 1
OK
127.0.0.1:6379> hmget news:2 title content is_valid
1) "Title2"
2) "Content2"
3) "1"
127.0.0.1:6379>

hsetnx -- 如果散列值已经存在,则不设置

用法:
hsetnx key field value
例子:
127.0.0.1:6379> hget news:2 is_valid
"1"
127.0.0.1:6379> hsetnx news:2 is_valid 2
(integer) 0
127.0.0.1:6379> hget news:2 is_valid
"1"
127.0.0.1:6379>

hkeys/hvals -- 返回所有Keys/Values

用法:
hkeys key
hvals key
例子:
127.0.0.1:6379> hkeys news:1
1) "title"
2) "content"
127.0.0.1:6379>
127.0.0.1:6379> hvals news:2
1) "Title2"
2) "Content2"
3) "1"
127.0.0.1:6379>

hlen -- 返回散列包含域(field)的数量

用法:
hlen key
例子:
127.0.0.1:6379> hlen news:2
(integer) 3
127.0.0.1:6379>

hdel -- 删除散列指定的域(field)

用法:
hdel key field [field ...]
例子:
127.0.0.1:6379> hdel news:2 is_valid
(integer) 1
127.0.0.1:6379>

hexists --判断散列是否存在

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

推荐阅读更多精彩内容