Redis
1.Redis是NoSQL数据库,不是传统的关系型数据库
2.Redis: REmote Dlctionary Server(远程字典版务器),Redis性能非常高,单机能够达到 15wqps,通常适合做缓存,也可以持久化。
3.是完全开源免费的,高性能的(keylvalue)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是最热门的NoSql数据库之—,也称为数据结构服务器
4.Redis工作原理图
启动redis
Redis的命令参数
网站Redis 命令参考 — Redis 命令参考 (redisdoc.com)
Redis的基本使用:
说明: Redis安装好后,默认有16个数据库,初始默认使用0号库,编号是0...15
1.添加 key-val [set]
2.查看当前 redis 的所有key [keys*]
3.获取 key 对应的值. [get key]
4.切换 redis 数据库 [select index]
5.如何查看当前数据库的 key-val 数量 [dbsize]
6.清空当前数据库的 key-val 和清空所有数据库的 key-val [flushdb flushall]
flushdb:清空当前数据库
flushall:清空所有数据库的
Redis数据类型和CRUD
Redis的五大数据类型:
Redis的五大数据类型是: String(字符串)、Hash (哈希)、List(列表)、Set(集合)和zset(sorted set:有序集合)
String(字符串)-介绍
string是redis最基本的类型,一个key对应一个value.
string类型是二进制安全的。除普通的字符串外,也可以存放图片等数据。
redis中字符串value最大是512M
String(字符串)-CRUD
举例说明Redis 的 String字符串的CRUD操作.
set[如果存在就相当于修改,不存在就是添加]/get/del
String(字符串)-使用细节和注意事项
setex(set with expire)键秒值 (设置某个值的时间)
mset[同时设置一个或多个 key-value 对]
Hash(哈希,类似golang里的Map)-介绍
Redis hash是一个键值对集合。var user1 map[string]string
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。key不能重复
举例.存放一个User信息(user 1)
user1 name "smith" age 30 job "golang coder"
Hash的CRUD的基本操作
hset : 设置值 hget : 获取值
hgetall:获取所有值 hdel :删除值
Hash-使用细节和注意事项
在给user1设置name和age时,前面我们是一步一步设置,使用 hmset 和 hmget
hlen统计一个hash有几个元素.
hexists key field
查看哈希表key中,给定域field是否存在
List(列表)-介绍
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
List本质是个链表, List的元素是有序的,元素的值可以重复.
举例 存地多个地址信息:
List(列表)-CRUD
lpush:从左边插入 rpush :
lrange
lpop: 列表的头元素,移出此元素。 当 key
不存在时,返回 nil
。
rpop: 列表的尾元素,移出此元素。 当 key
不存在时,返回 nil
。
List-使用细节和注意事项
(1) lindex,按照索引下标获得元紊(从左到右,编号从0开始.)
(2) LLEN key
返回列表 key的长度,如果key 不存在,则 key被解释为一个空列表,返回0
(3)List的其它说明
List数据,可以从左或者右插入添加;
如果值全移除,对应的键也就消失了。
Set(集合)-介绍
Redis的 Set 是string类型的无序集合。
底层是HashTable数据结构,Set也是存放很多字符串元素,字符串元素是无序的,而且元素的值不能重复
Set(集合)-CRUD
sadd : 添加值
smembers : 取出所有值
sismember : 判断值是否是成员
srem : 删除指定值