谈起Redis数据库先谈谈MYSQL数据库。为了方便将我们的数据进行持久化的存储,我们通常在项目开发中使用MySQL数据库来保存我们的用户信息等。
一、那什么是NoSQL
Not onle sql (非关系型数据库), NoSQL数据库中数据之间是无联系的,没关系的,数据的结构是松散的
NoSQL的优势 :
大数据量,高性能
NOSQL具有非常高的读写能力
灵活的数据模型
NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式
高可用
低成本
NoSQL也有劣势 不支持标准SQL ,没有索引 没有事务(不能实现实事务的ACID)
由于Redis主要是运行在linux环境中,具体的安装过程这里就不写了
安装Redis后我们一般都会安装一个图形化的界面方便查看redis存储的数据
Redis Desktop Manager
官网地址:https://redisdesktop.com/
关闭linux防火墙 systemctl stop firewalld
二、jedis
jedis是redis的编程客户端
1、ping
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191011101421371.png)
2、查看当前数据库中key的数量 dbsize
返回当前数据库中key的数量
3、数据库之间的切换
select xxx redis默认是16个库 从0 开始计数
4.删除当前库中的数据
flushdb
5.退出
exit | quit
三、Redis对key的操作命令
1、显示所有的key
keys *
2、keys wo*d
匹配所有 wo 开头 d 结尾
3、keys wo?d
? 表示任意一个字符
4、exists 验证指定的key是否存在
exists name 存在返回1 不存在返回0
exists name age sex weight height phone 存在几个返回数字几
5、expire 设置key的生存时间,超时key自动删除 单位是秒
expire name 5 指定name 的key生存时间是5s
6。ttl 查看指定key的剩余生存时间
-1 无限
-2 key不存在
数字 剩余时间(s)
7、type 查看key对应的value 数据类型
⚫ none (key 不存在)
⚫ string (字符串)
⚫ list (列表)
⚫ set (集合)
⚫ zset (有序集)
⚫ hash (哈希表)
8、del 删除
四、数据类型操作命令
set name zhangsan
get name
#将key存储的数字值加1,如果不存在,则key的值先被初始化为0在执行incr,只能对数字类型操作,其它类型报错Err value is not an integer or out of range
incr index
#同incr 将key存储的数字值减1
decr index
#name = zs
#如果可以存在追加到后面 不存在则设置为当前value hello
append name hello
//====================================================================
#name=zhangsan
#返回指定key存储字符串的长度8 , 不存在返回0
1、strlen name
#获取 key 中字符串值从 start 开始到 end 结束的子字符串,包括 start 和 end, 负数表示从字符串的末尾开始,-1 表示最后一个字符
2、getrange name 0 4
zhang
#使用value覆盖从offset开始的字符串 ,返回修改之后的字符串长度
3、setrange name offset value
【例】 setrange name 5 lisi
修改之后为 zhanglisi
返回值是 9
#同时设置多个key-value对
4.mset name zhangsan age 22 sex nan phone 1111111111
#mget获取多个key的值
5。mget name age sex
五、hash类型
hset
key就是一个hash表
#hset
#①如果 field 是 hash 表中新 field,且设置值成功,返回 1
#②如果 field 已经存在,旧值覆盖新值,返回 0
1、 hset ulist name zhnagsan
key ---ulist 是一个List集合
name 属性
zhangsan name对应的属性值
#获取哈希表key中指定域的field 对应的value值
2、hget
hget ulist name
返回 : zhangsan
#同时设置多个
3.hmset
hmset ulist name zhangsan age 22 sex nan phone 1111
#获取哈希表多个域所对应的值
4、hmget
hmget ulist name age sex
#获取哈希表所有域以及所对应的值 ,以列表形式返回
5.hgetall
hgetall ulist
返回:
name
zhangsan
age
22
sex
nan
#删除多个域所对应的值
#返回成功删除的数量 , 不存在的忽略
6.hdel
hdel ulist name age sex
#查看所有filed域
7.hkeys
hkeys ulist
#查看所有域中的值
8.hvals
hvals ulist
#查看哈希表 key 中,给定域 field 是否存在
#存在返回1 ,其它返回0
9.hexists
hexists ulist name
六、list
key 是一个list集合,list集合的特性,有序可重复
#讲一个或多个值插入到表头,从左到右顺序依次插入
#返回新列表的长度
1、lpust
lpush ulist a b c
#将一个或多个值value 插入到列表 key 的表尾,各个 value 值按从左到右的顺序依次插入到表尾
#返回 新列表的长度
2、rpush
rpush ulist a b c
#获取列表key指定的区间长度 -1表示最后一个
3、lrange
lrange ulist 0 1
#获取下标为index的元素 【注意】 起始下标是从0开始
4、lindex
#获取列表长度
5、llen
6、lrem
lrem ulist 2 name 从左往右开始移除2个与name相等的元素
lrem ulist -2 name 从尾部开始移除2个与name相等的元素
lrem ulist 0 name 移除所有name 元素
#j将列表key下标为index 的元素值设置为value
7、lset
lset ulist 2 lisi
#将value插入到列表key指定值的前面后者后面 before 钱苗苗 fater 后面
8、linsert
linsert ulist before name phone
将phone插入到name的前面
七、set
无序不可重复 key表示一个set集合
#可以添加一个或多个添加元素
1.sadd
sadd uSet zhangsan 22 nan 11111
#获取集合key中所有成员元素
2、smembers
smembers uSet
#检验是否是集合元素 是返回1 ,其它返回0
3. sismember
sismember uSet name
#获取集合中元素的个数 返回一个数字 ,如果集合不存在返回0
4.scard
scard uSet
#删除多个集合元素 返回一个数字 表示删除几个
5. sren
srem uSet name age phone
#随即返回一个元素
#count可以指定数量 如果是负数,返回的集合中元素可能重复
6.srandmember key [count[]
srandmember uSet
#随机删除,count可以指定数量 ,集合如果不存在返回nil
7.spop
spon uSet
八、有序集合zset
1.添加元素 返回新添加元素的个数
zadd uset 60 zs 70 lisi 80 ww 90 zl
#查询有序集合,指定区间内的元素,按照score值 **从小到大排序**
#从0开始 -1表示最后一个元素
#后面如果添加 withscores表示带score返回
2.zrange
zrange uSet 0 -1
#**从大到小排序**
3、zrevrange
#删除有序集合的一个或多个元素
#返回成功删除的数量
4.zrem
zrem uSet name age sex
#获取有序集合的成员个数 返回integer
5.zcard
zcard uSet
以上就是jedis的常用命令