redis数据库的安装使用

redis

一个开源,用键值对的储存方式,查询快
redis会把数据保存在“内存里”里,使用磁盘进行持久化
数据类型丰富:
    string:储存任何数据(二进制),如数字、图片、序列号对象
    hash:用于存储对象(哈希表)
    list:列表的元素为string;按照顺序插入头或者尾
    set:无序集合,类型也是String,唯一性,不重复
    zset:有序集合,string,唯一性,有权重,每个元素都会加一个score表示权重
reids可以将数据复制到任意从机中
原子性:客户端可以并发访问   也是单线程
他可以缓存消息队列,网页存储的信息

安装

windows:
https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100

linux:
sudo apt install redis-server

默认端口号:6379

进入数据库

select 0 #默认0,这里数据库可以用数字表示,作为编号,
#一般redis不接受自定义数据库名,他默认有16个
#由于不接收数据库名,所以那些库存了哪些数据就需要自己记住了
select + 编号可以直接进入某个数据编号库

所有数据类型都可以的命令

keys *  #显示所有的键值
这个就显示所有的键值,不区分数据类型,例如string就输出键,list就输了列表名,set就输出集合名

del key  #删除某个键
#也适合于所有的数据类型,对于list,push,set等他们的表名,集合名就是他们的键(key)

设置键值、插入

设置键值,也可认为是插入,有就是列表插入或者键值更新,没有就是创建在插入

 以下key表示键,value表示值,[]表示内容可以选  
 time表示时间单位秒,listName表示列名,tableName表示表名,setName无序集合名,其他就是关键字:
 
 string:set key value     
         mset key value [key value....]  #设置多个
         string可以设置过期时间:
         setex key time(s) value或者set key value ex time
         如果值已经存在,需设置时间:expire key time
 
 hash:hset tabelName key value      
     hmset table key value [key value ...]   #插入多条

  list:头部插入lpush listName value [value ...]  这里例如 lpush list1 1 2 3 ,然后你查看数据的时候会显示3,2,1,从头部一个一个插入,后插入的在前
      尾部插入rpush listName value [value ...] 这里怎么插入怎么排
     指定元素插入:linsert listName before|after 某个值  value
     修改指定值:lset listName index value
 set:sadd setName value [value ...]
 zset:zadd zaddName score value [score value ....] #score表示权重根据这个排序

查询

 string:get keyName
         mget keyName1 keyName2 .... #获取多个键的值
         模糊查询: keys patter    #可用*(任意字符),?(单个字符),[](里面的一个)
         存在与否:exists keyName   #存在1 不存在0
         查看有效时间,ttl keyName
         查看键值类型:type keyName
         获取长度:strlen keyName
 
 hash:hget tableName key  查询单个值
     hmget table key1 key2 ... #查询多个值
     获取所有属性:hkeys tableName
     获取所有值:hvals tableName
     获取所有属性和值 hgetall tableName
     获取键值对个数 :hlen tableName
     判断存在与否:hexists tableName key 存在返回1
     
  list:lrange listName start end #获取指定范围的元素,可以为负数
     裁剪并修改原数组:ltrim listName start end  
     获取长度:llen listName
     根据所有获取对应的值:lindex listName index
     
 set:获取所有元素:smembers setName
     获取长度:scard listName
     判断元素是否存在:sismember listName value
 zset:获取指定范围的元素:zrange zsetName start end 
         获取元素个数:zcard zsetNaem
         查找权重范围内的元素个数:zcount zsetName minScore maxScore
         查询指定元素的权重:zscore zsetName value

删除元素

string:del keyName #因为字符串里只有一个元素所以删全部就可以了

hash: hdel tableName key #删除某个属性和值,删除全全部del就就可以了

list:lpop listName #删除第一个,并且作为返回值返回
      rpop listName #删除第一个,并且作为返回值返回
set:srem setName value #删除这个元素

zset:zrem zsetName value #删除这个元素

运算

string:对于数字类型数据可进行如下操作:
        incr key  #键所对于的值加一
        decr ke  #键所对于的值减一
        incrby key num #键所对于的值加num数值
        decrby key num #键所对于的值减num数值
        append key str #字符串追加,往key的值里加str是字符串,
        #就算数纯数字也是追加 如18 追加 "5" 变为"185" 但是它任然可以进行incr decr运算

set:交集:sinter setName1 [setName2 ...]
    差集:sdiff setName1 [setName2 ...]
    合集:sunion setName1 [setName2 ...]

zset:zrem zsetName value #删除这个元素
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章