redis的数据结构和基本使用

redis简介

关系型数据库是以表为基础单位存储数据

redis是一种非关系型数据库, 聚合数据结构存储数据。

聚合数据结构:

非关系数据库:redis ,mongoDB,HBase,。。。。

linux安装redis

第一步下载redis

第二步传输文件到linux

第三步解压目录

tar -zxvf redis的版本 -解压到什么路径
		  redis-5.0.2.tar.gz  -C /opt

第四步 进入解压目录下,运行make命令进行编译src源程序,报错缺少gcc文件,因为没有c语言的编译文件

make

第五步安装gcc

yum -y install gcc
gcc -v//查看gcc是否安装成功

第六步重新使用make需要先执行上次的文件

make distclean

第七步再次编译src源文件

make

第八步进行快捷方式 相当于配置环境变量

make install

环境变量user/localhost/bean

启动

redis-server

查看后台启动项
ps -ef|grep redis
启动redis

1.前台启动

redis-server

2重点后台启动

redis-server &

3.启动redis是,指定配置文件

redis-server redis.conf &

关闭redis

通过redis命令关闭

redis-cli shutdown

退出客户端

exit或者quit

redis的使用

redis-cli客户端连接redis

redis-cli -p 端口号

连接其他机器的redis服务端

redis-cli -h IP地址 -p redis的端口号

redis-benchmark 测试redis服务的性能

info查看redis服务器的统计信息

info Replication查看集群信息

select 数据库的下标切换数据库

dbsize 查看当前数据库的数据的条数(查看key值)

set key value 存入

get key 获取值

keys * 获取当前数据库所有的key

fluchdb 清空当前的数据库

flushall 清空所有数据库的实例

config get * 查看所有的redis配置信息

redis的数据结构

字符串string存储单个的字符串 单key 单value

列表list 单key 有序多value存储多个有顺序的值

集合set 单key 多个无序value 存储多个无序的值

哈希hash 单key 对象(属性:值)存储对象

有序集合zset 单个key多个有序的value:存储多个有序的值,排序方式自己指定

redis操作命令
key键操作

keys *:查看数据库当中所有的key

keys k*:查看以k开头的所有的key

keys k?:查看数据库中以k开头,并且之后只有一个字符串的key

keys k[abc]:查看数据库中以k开头,并且有一个abc其中一个字符的key

exists key:判断数据库中是否存在某个key,存在返回1,不存在返回0

exists key1 key2 key3:判断数据库中是否存在key,存在一个返回1,存在二个返回2,不存在返回0

move key 数据库下标:移动指定key到指定的数据库实例

ttl key 查看指定key的生存时间,没有设置生存时间为-1,没有当前key返回-2,

expire key 20:给指定key设置生存时间,为20秒,过了20秒之后就会在内存当中删除

type key :查看指定key的数据类型

rename key newkey 重命名key的名字

del key删除指定key

del key1 key2 key3 key4 返回删除成功的key的数量,如果没有要删除的key则跳过

字符串操作命令

set 键 值 将string类型的数据保存到redis中如果设置的键存在,则会把以前的key覆盖掉

get 键 获取string类型的数据

append key value:追加字符串到指定的key当中

strlen key:获取字符串数据的长度

incr key:将字符串数值进行加一运算

decr key:将可以运算的字符串进行减一运算

incrby key 14:对可运算的字符串进行加某个数的运算(+14)

decrby key 23:对可运算字符串进行减法运算(-23);

getrange key startIndex endIndex字符串截取,从startIndex开始到endIndex索引的字符串,左右全闭

setrange key startIndex value :改变字符串的值,用value覆盖以下标为startIndex的字符串

setex key 20 value设置一个key的值,并设置他的最大生命周期

setnx key value :设置字符串类型的数据到redis数据库当中,当key不存在时设置成功,如果key存在则放弃设置

mset k1 v1 k2 v2 k3 v3.。。。设置多个string类型的数据到redis中

mget 键1 键2 键3 … 获取多个键的值,如果没有键则返回nil

msetnx k1 v1 k2 v2… 批量设置字符串数据到redis当中,当所有key都不存在时设置成功,否则全部放弃设置

redis列表list的操作命令(链表)

lpush key value value value。。。 将一个或者多个值依次插入到列表的左侧

lrange key startIndex endIndex查看指定列表中指定下标区间的元素,左右全闭区间;

rpush key v1 v2 v3。。 将一个或者多个值一次插入右侧

lpop key 移除指定列表中表头的元素,并返回表头元素

rpop key移除指定列表表位的元素,返回值为表位元素

lindex key index获取列表中指定下标的元素

llen key 获取指定列表的长度

lrem key count value 移除列表中和某个值一样的数据 ,count>0 :从列表的表头移除count个和value相等的数据;count <0 从列表的表尾移除count个和value相等的数据

count=0 移除列表中所有和value相等的元素

redis集合set类型的操作命令

sadd key v1 v2 v3 将一个或者多个元素存入set集合当中

smembers key 获取指定集合中所有的元素

sismember key value 判断指定元素在集合中是否存在,存在返回1,不存在返回0

scard key 获取指定集合的长度

srem key v1 v2 v3。。 移除指定集合中一个或者多个元素

srandmember key 【count】 随机获取指定集合中一个元素 count>0随机获取多个元素不能重复 count<0 随机获取多个元素之间可能重复 count不写为获取一个元素

spop key [count] 随机移除一个或者多个元素 count为空则移除1个元素 count为移除多少个元素

smover key newkey member 移动指定集合中的指定元素移动到另一个集合

sdiff key key1 key2 key3 .。。获取key集合当中存在但是其他集合都没有的元素组成的新集合

sinter k1 k2 k3 。。。。 获取所有集合中都有的元素组成的新集合

sunion k1 k2 k3.。。 获取多个集合的所有元素组成的大集合

hash类型数据的操作命令

可以理解为对象是key ,一个key可以存储多个属性,多个属性叫做field ,field中存储属性值

hset 哈希表名(key)属性名(field1)值(v1)属性名二(field2) 值二(v2)。。。 将一个对象设置到哈希表中

hget key field 获取指定hash表中指定的属性的值

hmget key field1 field2 field3.。。 获取批量hash表中的属性值

hgetall key 获取hash表中所有的属性名和属性值

hdel key field1 field2。。。 删除hash表中删除一个或者多个属性名 属性值也会删除

hlen key 获取指定hash表中所有的属性名个数

hexists key field 判断指定hash表中是否存在某一个属性名,存在返回1,不存在返回0

hkeys key 获取指定hash表中所有的属性名

hvals key 获取指定hash表中所有的属性值

hincrby key field int 对hash表中指定的field值进行加法运算

hincrbyfloat key field float 对指定hash表中属性值进行浮点数运算

hsetnx key field value 将对象设置到hash表中,如果当对象的key和field存在时放弃设置,否则继续设置

redis中有序集合zset操作命令

zaddkey score member score1 member1.。。将一个或者多个元素加入有序集合score为当前数值的分数,升序,可以覆盖分数

zrange key startIndex endIndex [withsoures]获取有序集合中指定下标区间的元素 withsoures可以显示每个元素的分数

zrangebyscore key min max[withsoures] 获取指定分数区间的元素

zrem key member1 member2。。。 删除指定有序集合中一个或者多个元素

zcard key 获取有序集合的长度

zrank key member 获取指定有序集合中指定元素的排名

zcount key min max 获取有序集合中分数在指定区间的元素个数

zscore key member 获取有序集合中指定元素的分数

zrevrank key member 获取指定有序集合中指定元素的反向排名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值