我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis基础篇

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis基础篇

redis有五种数据类型,分别是string、hash、list、set、zset

 

一、string类型:

redis 127.0.0.1:6379>set name doo//设置一个键值对,键为name,值为doo

redis 127.0.0.1:6379>get name//获取name的值

redis 127.0.0.1:6379>set name ya        //再次赋值将被覆盖,一个key对应一个value

redis 127.0.0.1:6379>setnx name doo   

//会判断name是否存在,存在返回0,不存在返回1,且写入name=doo这个键值对。

redis 127.0.0.1:6379>setex haircolor 10 red  //指定haircolor的值存在10秒,超过时间则消失

redis 127.0.0.1:6379>setrange name 6 doo.com

//对于name这个字符串的第七个位置改为doo.com,如果替换的没有原来的长,则原来结尾部分依然存在,例如:name=abcdefg,  setrange name 2 12   则name变为a12defg

redis 127.0.0.1:6379>mset key1 doo key2 ya   //批量设置键值对

redis 127.0.0.1:6379>msetnx   //批量判断是否存在,只要有一个存在,则全部设置不成功

redis 127.0.0.1:6379>getset key 30    //获取key的值,同时重新给key赋值

redis 127.0.0.1:6379>mget  //批量获取值,有空的则返回空

redis 127.0.0.1:6379>incr key7    //对key7自增1,如果key7不存在,则默认原来为0

redis 127.0.0.1:6379>incrby  key6  5   //对key6自增5,

redis 127.0.0.1:6379>incrby key6  -4     //对key6自减4

redis 127.0.0.1:6379>decr key6  1   //对key6自减1

redis 127.0.0.1:6379>decr  key6  -2   //对key6自增2

redis 127.0.0.1:6379>append  name  net   //给name的值后面拼加字符串net

redis 127.0.0.1:6379>strlen   name      //查看name的值的长度

 

 

二、hash数据类型,是字段field和值的映射表,占用内存少

redis 127.0.0.1:6379>hset  myhash  field1   hello    //myhash是哈希表

redis 127.0.0.1:6379>hget  myhash  field1     //获取myhash表的field1的值

redis 127.0.0.1:6379>hsetnx  myhash  hello   //判断是否存在,存在返回0,不存在则赋值

redis 127.0.0.1:6379>hmget  myhash  field1  hello  filed2  word    //批量赋值

redis 127.0.0.1:6379>hmget   myhash   filed1   filed2   //批量获取值

redis 127.0.0.1:6379>hincrby user:003  age   5    //对user:003表的age自增5

redis 127.0.0.1:6379>hexists   user:003  age    //会判断age是否存在,存在返回0,否则返回1

redis 127.0.0.1:6379>hlen  user:001     //返回哈希表的键值数量

redis 127.0.0.1:6379>hdel  myhash  age   //对myhash表的age字段删除,返回1删除成功

redis 127.0.0.1:6379>hkeys   myhash    //返回myhash表的所有字段,不返回值

redis 127.0.0.1:6379>hvals   myhash    //返回myhash表的所有值,不返回字段

redis 127.0.0.1:6379>hgetall   myhash    //返回myhash表的所有键和值

 

 

三、list数据类型

redis 127.0.0.1:6379>lpush   mylist   word   //从头部加入一个元素

redis 127.0.0.1:6379>lpush  mylist  hello     //

redis 127.0.0.1:6379>lrange  mylist  0  -1   //从头部第一个取到尾部

redis 127.0.0.1:6379>rpush   mylist  be    //从尾部加入一个元素

redis 127.0.0.1:6379>linsert   mylist  before one two //向one元素前面加入一个元素,在头部为前。

127.0.0.1:6379> lpush  list2  one//向list2中插入值one

(integer) 1

127.0.0.1:6379> lpush  list2  two

(integer) 2

127.0.0.1:6379> lpush  list2  three

(integer) 3

127.0.0.1:6379> lrange list2  0  -1//输出list2的所有值

1) "three"

2) "two"

3) "one"

127.0.0.1:6379> lset list2 1 four //将list2 的two改为four插入数据从头部插入,新插入的数据角标为0

OK

127.0.0.1:6379> lrange list2 0 -1

1) "three"

2) "four"

3) "one"

127.0.0.1:6379> lrem list2 3 one//从list2中删除3个和one相同的元素

(integer) 1

127.0.0.1:6379> ltrim list2 2 -1//保留第三个到结尾的元素

OK

127.0.0.1:6379> rpoplpush  list1  list2//将list1的尾部加到list2的头部

127.0.0.1:6379> lindex list2 0//返回list2第一个位置的值

127.0.0.1:6379> llen list2//返回list2中元素的个数

 

 

四、sets 数据类型  集合

127.0.0.1:6379> sadd myset1 hello//向集合myset1中加入hello元素

(integer) 1

127.0.0.1:6379> smembers myset1//查看myset1的所有元素

1) "hello"

127.0.0.1:6379> sadd myset1 one

(integer) 1

127.0.0.1:6379> srem myset1 one//删除myset1的one元素

(integer) 1

127.0.0.1:6379> spop myset1//随机从myset1中删除一个元素

127.0.0.1:6379> sdiff myset1 myset2//返回两个集合的差集,以前面集合为标准,返回前面那个集合中不在集合2的元素

127.0.0.1:6379> sdiffstore myset4 myset2 myset3//将集合2和3的差距存放于集合4

127.0.0.1:6379> sinter myset1 myset2//取集合1和集合2 的交集

127.0.0.1:6379> sinterstore myset3 myset1 myset2//将集合1和集合2 的交集存于集合3

127.0.0.1:6379> sunion myset1 myset2//取集合1和集合2的并集

127.0.0.1:6379> sunionstore myset3 myset1 myset2  //集合1和集合2的并集存于集合3

127.0.0.1:6379> smove myset2 myset3 three   //将集合2 的three移到集合7中

127.0.0.1:6379> scard myset1//返回集合1的元素的个数

127.0.0.1:6379> sismember myset1 one//测试myset1中是否有one,有则返回1,否则返回0

127.0.0.1:6379> srandmember myset1//随机返回集合1中的一个元素,不删除

 

 

 

五、 有序集合zset

127.0.0.1:6379> zadd myzset1 1 one//增加zset1

(integer) 1

127.0.0.1:6379> zadd myzset1 2 two

(integer) 1

127.0.0.1:6379> zadd myzset1 3 two

(integer) 0

127.0.0.1:6379> zrange myzset1 0 -1//查看有序集合的所有元素

1) "one"

2) "two"

127.0.0.1:6379> zrange myzset1 0 -1 withscores//加withscores可现实元素序号

1) "one"

2) "5"

 

127.0.0.1:6379> zrem myzset1 two//删除集合中的元素

127.0.0.1:6379> zincrby myzset1 2 one//对one的序列号加2

127.0.0.1:6379> zincrby myzset1 -2 one       //对one的序列号-2

127.0.0.1:6379> zrank myzset1 three//返回three的索引值,索引值从0开始,序列号从1开始

127.0.0.1:6379> zrank myzset1 three

(integer) 2

127.0.0.1:6379> zrevrank myzset1 three//先降序,再找索引

(integer) 0

 

127.0.0.1:6379> zrange myzset1 0 -1 withscores//查看元素以及现实序列号

1) "one"

2) "1"

3) "two"

4) "2"

5) "three"

6) "3"

127.0.0.1:6379> zrevrange myzset1 0 -1 withscores//先降序,再查看元素以及序列号

1) "three"

2) "3"

3) "two"

4) "2"

5) "one"

6) "1"

 

127.0.0.1:6379> zrangebyscore myzset1 2 3 withscores//找序列号是2和3的元素

1) "two"

2) "2"

3) "three"

4) "3"

 

127.0.0.1:6379> zcount myzset1 2 4//返回序列从2 到4的元素个数

127.0.0.1:6379> zcard myzset1 //返回有序集合元素个数

 

127.0.0.1:6379> zrange myzset1 0 -1//先看索引

127.0.0.1:6379> zremrangebyrank myzset1 0 1  //删除索引值从0到1的元素

127.0.0.1:6379> zremrangebyscore myzset1 2 5//删除序列号是2到5的元素

 

 

 

 

元素过期:

127.0.0.1:6379> set age 20//设置age的值为20

OK

127.0.0.1:6379> get age          //获取age的值

"20"

127.0.0.1:6379> expire age 20//设置age的值存在20秒

(integer) 1

127.0.0.1:6379> ttl age//获取剩余存在时间,秒

(integer) 16

 

 

 

 

键值相关命令:

127.0.0.1:6379> keys  *       //返回所有的键

127.0.0.1:6379> keys  my*     //返回my开头的所有键

127.0.0.1:6379> exists  name    //查看name键是否存在,存在返回1,否则返回0

127.0.0.1:6379> del  age       //删除age的键

127.0.0.1:6379> expire   age   10         //设置过期

127.0.0.1:6379> persist   age        //取消过期设置

127.0.0.1:6379> move  age  1     //将age这个键移动到1数据库

一共16个数据库,从0-15    开始默认是0

127.0.0.1:6379> select 0      选择进入0号数据库

127.0.0.1:6379> randomkey     随机返回一个key

127.0.0.1:6379> rename  age  age.new    给键重新命名

127.0.0.1:6379> type  age       返回值的数据类型,(string、zset、list等)

 

 

 

服务器相关命令:

127.0.0.1:6379> ping       测试与服务器连接正常,正常返回pong

127.0.0.1:6379> echo       类似于回显

127.0.0.1:6379> select 2     选择2号数据库

127.0.0.1:6379> quit    //退出,或者用exit

127.0.0.1:6379> dbsize     //返回当前库键的数目

127.0.0.1:6379> info       //获取redis的信息

127.0.0.1:6379> config  get  *    //返回当前所有配置项

127.0.0.1:6379> CONFIG GET timeout//返回timeout配置项的参数值

1) "timeout"

2) "0"

127.0.0.1:6379> flushdb       //删除当前库中所有的key

127.0.0.1:6379> flushall       //删除所有库的所有key,不管在哪个库下都是

 


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis基础篇

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

Redis必备面试题《基础篇》

Date:2019-11-12读前思考:  面试官会问什么样的问题?  所问的问题背后真实的套路是什么?  喜欢问Redis哪些问题?  如何顺畅回答面试问的问题?吊打面试官。 1、什么是Redis? 2、Redis相比memcached有哪些优势? 3、Re
2015-12-04

Python基础篇-Python基础语法

为什么学习pythonhttp://www.apelearn.com/bbs/thread-7739-1-1.html Python的安装 getconf LONG_BIT     查看系统版本多少位 rpm -q python uname
2023-01-31

python 基础篇(一)

默认的python的文件为:文件名.py #!/usr/bin/env python   # coding=utf-8     对中文的支持(切记:等号两边没有空格)执行python 文件:[root@localhost Desktop]#
2023-01-31

MySQL基础篇(一)

本文主要内容为MySQL的基础语句以及正则表达式等内容。本文操作的数据库内容存在个人github:https://github.com/YuanGao-1/blog_demo.gitinit_schema.sql为建表脚本init_data.sql为测试数据具
MySQL基础篇(一)
2018-12-14

python之基础篇(四)

防伪码:忘情公子著本篇我们来说说python的内置对象类型及其运算。  python有许多的内置类型,我们为什么要使用内置类型呢?python编程时是尽量去使用自定义类型还是尽可能多的使用内置类型呢?  内置类型对python本身来讲它的理
2023-01-31

python之基础篇(一)

防伪码:忘情公子著一、python介绍  python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。  python语法简洁明晰,特色之一是强制用空白符
2023-01-31

EF基础篇-DB First

EDM entity data model  实体数据模型 Conceptual models 概念模型Mappings         连接Storage models    存储模型 Orm object relational mapping 对象关系映射

	EF基础篇-DB First
2021-05-31

python之路-基础篇

python基础第一章1、python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  
2023-01-31

linux 培训-基础篇

一.systemctl1.服务器启动过程redhat 7以前启动方式,init: 按顺序启动 1 2 3 4。 启动慢redhat 7 systemd:并行化启动 按依赖关系启动。 1 2 3 4(network) 5 6 7 依赖于4则
2023-06-06

Tornado基础学习篇

1.1 Tornado是什么?Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。我们现在所知道的Tornado
2023-01-30

H3C基础配置篇

最近,入手一台H3CS3600V2-SI鼓捣了大半个月终于是按照BOSS的要求配好.大部分时间都花在查官方文档和售后Email上,效率极低.如果基础知识,扎实感觉有一个星期完全足够了!下面就来总结一下:组网需求及内网信息收集: 1,Vlan
2023-01-31

python之基础篇(二)

防伪码:忘情公子著一、面向过程与面向对象  面向过程:    以指令为中心,由指令去处理数据    只要考虑如何组织代码去解决问题  面向对象:    以数据为中心,所有的处理代码都围绕数据展开    要考虑如何设计数据结构组织数据,并且提
2023-01-31

python之基础篇(三)

防伪码:忘情公子著python编程基础及编程风格:  语句和语法    注释:      #:可以从一行的任何地方开始    续行:      \:只能在行尾      ''':闭合操作符,单一语句跨多行。实现多行注释、内置文档等功能   
2023-01-31

python之路-基础篇5

1、字符串常用操作#字符串操作name = "my name is kk"print(name.capitalize())  #>>>My name is kk#capitalize()  #首字母大写print(name.count("a
2023-01-31

python之路-基础篇2

10、if else 流程判断举例说明1:import getpass  #引用getpass这个模块_username = "kk"_password = "123456"username = input("username:")pass
2023-01-31

编程热搜

目录