ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis命令入门

2021-06-06 19:04:17  阅读:113  来源: 互联网

标签:127.0 入门 6379 0.1 list Redis 命令 integer name


Redis入门

五大数据类型

  1. Redis-key
  2. String
  3. List
  4. Set
  5. Hash
  6. Zset

String(字符串)

String常用命令如下:

127.0.0.1:6379> exists name //查看某字段是否存在
(integer) 1
127.0.0.1:6379> keys * //查看该数据库下所有key
1) "name"
127.0.0.1:6379> get name //查看key对应的value
"wenzemin"
127.0.0.1:6379> expire name 10 //设置字段有效时间(s)
(integer) 1
127.0.0.1:6379> get name //10s之后查看,显示为null
(nil)
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name wenzemin //设置K-V键值对
OK
127.0.0.1:6379> set age 1 
OK
127.0.0.1:6379> type age 查看某字段的数据类型
string
127.0.0.1:6379> append name ",hello" //在某字段后面追加内容,若该字段不存在,则相当于set name xxx
(integer) 14
127.0.0.1:6379> get name
"wenzemin,hello"
127.0.0.1:6379> strlen name //获取某字段对应的value值的长度
(integer) 14

#########################################################

127.0.0.1:6379> set views 0 //设置初始浏览量为0
OK
127.0.0.1:6379> incr views  //自增1
(integer) 1
127.0.0.1:6379> incr views 
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> decr views //自减1
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incrby views 10 //设置步长,指定增量为10
(integer) 10
127.0.0.1:6379> incrby views 10
(integer) 20
127.0.0.1:6379> decrby views 5 
(integer) 15
127.0.0.1:6379> decrby views 5
(integer) 10

########################################################

//设置字符串范围(Range)
127.0.0.1:6379> set key hello,world
OK
127.0.0.1:6379> get key
"hello,world"
127.0.0.1:6379> getrange key 0 4  //截取字符串[0,4]
"hello"
127.0.0.1:6379> getrange key 0 -14 
"h"
127.0.0.1:6379> getrange key 0 -1 //获取全部字符串,和get一样
"hello,world"

//替换
127.0.0.1:6379> setrange key 6 sunshine //从某下标开始替换
(integer) 14
127.0.0.1:6379> get key
"hello,sunshine"

//setex(set with expire) 设置过期时间
//setnx(set if not exist)不存在再设置(在分布式锁中常常使用)
127.0.0.1:6379> setex name 10 maria 设置name过期时间为10s
OK
127.0.0.1:6379> ttl name //查看有效时间
(integer) 6
127.0.0.1:6379> setnx hobby study
(integer) 1
127.0.0.1:6379> keys *
1) "hobby"
2) "key"
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> setnx hobby running //hobby如果存在,则创建失败
(integer) 0
127.0.0.1:6379> get hobby
"study"

###########################################################

mset
mget
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 //同时设置多个值
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
3) "k3"
127.0.0.1:6379> mget k1 k2 k3 //同时获取多个值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4 //msetnx是一个原子性操作,要么全部成功,要么全部失败
(integer) 0
127.0.0.1:6379> get k4
(nil)

#######################################################
//对象 
set user:1 {name:zhangsan,age:18}
设置一个user:1对象,值为json字符串来保存一个对象
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 18
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "18"

127.0.0.1:6379> getset db redis //先get然后set
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb
"redis"
127.0.0.1:6379> get db
"mongodb"

List

在Redis里面,可以用LIst实现栈、队列、阻塞队列
所有的List命令都是用 l 开头

127.0.0.1:6379> LPUSH list one //将一个值或多个值插入到列表头部(左)
(integer) 1
127.0.0.1:6379> LPUSH list two
(integer) 2
127.0.0.1:6379> LPUSH list three
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> LRANGE list 0 1
1) "three"
2) "two"
127.0.0.1:6379> RPUSH list zero  //将一个值或多个值插入到列表尾部(右)
(integer) 4
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
4) "zero"
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210606181646477.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NjYxNjMyNQ==,size_16,color_FFFFFF,t_70#pic_center)
127.0.0.1:6379> LPOP list  //移除list的第一个元素
"three"
127.0.0.1:6379> RPOP list //移除list的最后一个元素
"zero"
127.0.0.1:6379> LRANGE list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> LINDEX list 0  //通过下标获得list中的某一个值
"two"
127.0.0.1:6379> LINDEX list 1
"one"
127.0.0.1:6379> LLEN list  //返回列表的长度Llen,命令不区分大小写
(integer) 2

标签:127.0,入门,6379,0.1,list,Redis,命令,integer,name
来源: https://blog.csdn.net/weixin_56616325/article/details/117628925

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有