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
全局键(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……
原文地址:https://www.jianshu.com/p/cd98317bc1ce
相关推荐
-
图片转字符 php基础
2019-5-13
-
关于php数据库事务的一个坑 php基础
2019-4-14
-
自做Windows上界面美观的PHP集成环境软件 php基础
2019-3-23
-
PHP验证IOS原生支付是否成功(代码全篇) php基础
2019-3-30
-
Swoole 4.4:支持 CURL 协程化 php基础
2019-6-7
-
1024程序员节阿里谜题解析 php基础
2019-6-20
-
Laravel / Lumen 框架修改 创建时间 和 更新时间 对应字段 php基础
2019-10-9
-
老王带你一步步看源码|Laravel 的路由匹配的过程都干了些什么? php基础
2019-10-3
-
PHP与Mysql8不兼容问题汇总 php基础
2018-12-14
-
一个PHP文件实现JS-SDK新版微信分享朋友圈,分享给好友功能 php基础
2020-6-26