redis命令记录

Redius

redius是基于内存的noSql数据库。

优势:

读写分离操作
 搭建集群
 单线程
 支持高并发

目前缓存的主流救赎

Redis
Memcached
mongoDB

区别?

很早出现的nosql数据库,数据都是存在内存中,不能持久化,支持的类型单一。

Redis安装(Linux)

1.首先下载压缩包
  2.上传到服务器
  3.进行解压
  4.解压完成之后,如果没有ggc安装gcc
  5.make
  6.make install
  7.进入到redis目录,修改redis.conf的daemonize改为yes。cd /usr/local/bin
  8. redis-server /home/yanqi/user/redis/redis-6.2.6/redis.conf 
  9. redis-cli
  10. 通过ping命令测试客户端是否连接成功

redis的数据类型

redis是以为key-value类型存储数据的所以接下来是key的类型

string 字符串 hash 哈希散列 list 列表 set 集合 (一个键对应一个无需集合) zset 有序集合(一个键对应一个有序集合)

Redis操作

多数据库

redis默认数据库有15个,编号是0-15,默认连接的设计0号仓库

切换仓库

sql SELECT 数据库索引

获取当前数据库key的总数

sql dbsize

查询键名

sql keys 正则表达式(查询所有可用*)

删除键值对

sql del 键名

存储键值对

sql set key value -- 如果有相同的key则会进行覆盖 setnx key value -- 如果有相同的key则进行覆盖,没有则进行添加

存储多组键值对

sql mset key value [key value] -- 如果有相同的key则进行覆盖 msetnx key value -- 当多个key都不存在时进行添加

修改值

sql getset key value -- 替换新值后,返回原来内容

给key设置过期时间

只要数据库不关闭,不清除,数据是存在的

sql SETEX key 时间(秒) value

判断key是否存在

sql EXISTS key

随机获取键名

sql random key

修改键名

sql rename key

输出内容&&退出连接&获取服务器信息

```sql echo 内容

quit

info ```

清空数据库

sql flushdb -- 清空当前数据 flushAll -- 清空所有数据库

键命令

DEL  key 删除键值对

   DUMP key 返回序列化的value

   EXSITS key 检查键是否存在,如果存在返回1不存在返回-1

   EXPIRE key time 设置KEY的过期时间,以秒为单位

   EXPIREAT key time(采用时间戳) 设置key的过期时间

   MOVE key index 移动key到指定下标的数据库

   PERSIST key 删除key的过期时间

   PEXPIRE key time 设置key的过期时间以毫秒为单位

   RANDOMKEY 随机返回一个key

   RENAME key newName 修改KEY的名称

   SCAN 迭代器

   TTL key 检查Key的过期时间

   TYPE key 获取VALUE的数据类型

Hash命令

Hash(哈希散列)是Redis的基本数据类型之一,它以字符串映射表的形式进行存储,Hash适合用于存储对象。

hash是由字符串的filed(字段)和value组成的哈希映射表结构,非常类似于表格结构,在hash类型中field与value 一一对应,不允许重复。hash的底层有两种实现方式,第一种:当存储的数据量少时采用aiplist作为底层存储结构,第二种:采用hash表的结构存储(相当于java里的HashMap)

HSET key key value 添加键值对

       HGET key key 获取单个valueT 

       HMGET key key key 获取多个value

       HMSET key key value key value 添加多个键值对

       HDEL key key 删除

       HEXISTS key key 查询是否有指定key

       HKEYS key 获取所有key

String 命令

APPEND  key 追加字符串

       BITCOUNT key  获取被计算为1的比特位的数量

       DECR key 如果存储的是整数,则-1

       DECRBY  key num 指定减去num的值

       GET key 获取指定key的值

       GITBIT key index获取指定偏移量上的位(根据下标获取,获取的是字符串转换为二进制的值) 

       GETRANGE key 获取指定下标的字符

       GETSET key newValue 给key设置新值并返回旧值

       INCR key 整数+1

       INCRBY key num 整数+num

       INCRBYFLOAT 增加浮点数

       MGET key key获取多个key

       MSET key value key value 设置多个key

        STRLEN key 获取字符串长度

list命令

list相当于java中的linkedList结构,是一个链表,插入快,查询慢。

redis的底层存储结构,是快速链表的结构。当列表中存储的元素少时,redis会使用一块连续的内存,这个连续的结构被称为压缩列表(所有的元素紧挨着一块存储),当数据链较大时使用快速链表。

该链表可以被当作,栈和队列来进行使用,如果列表的元素是,先进先出(左进右出)那么就是队列模型,如果是后进先出(右进右出)就是栈模型

BLPOP  key time 删除并返回列表中的第一个元素(头部操作) time是超时时间如果列表中没有元素就会发生阻塞,指导列表等待超时或者发现可弹出元素

    BRPOP key time 删除并返回列表中的最后一个元素(尾部操作)

    BRPOPLPUSH key key time 从列表中取出最后一个元素,并插入到另一个列表的头部

    LINDEX 通过下标获取列表中的元素

    LINSERT key BEFORE | AFTER targetElem elem  BEFORE和After是前边或者后边,在targetElem的前边或者后边添加 elem

    LPOP key 从列表的头部弹出元素

    LPUSH key value在列表的头部插入值

    LRANGE key start stop 获取从start到stop范围的值

    LREM key count elem 从列表中删除与elem相同的值,count是数量,0则表示全部一处

    LSET key index elem 通过index将值设置为elem

    LTRIM

Set命令

Set的数据类型,由键值对组成,无序但是唯一,当集合中的最后一个元素被移除后,该数据结构会被自动删除,内存也会被收回。 set的底层存储结构是整型数组与hash table,当set的存储数据的所有成员都是整数值且不超过512个则使用整型数组存储,当不满足时使用hash table 结构存储。

``` SADD key value value 添加一个或多个value到set中

SCARD 返回集合中元素的个数

SDIFFSTORE key1 key2 key3 将key2和key3的差集存储到key1中

SINTER key1 key2 求key1 key2的交集

SINTERSSTORE 将key2和key3的交集存储到key1中

SMEMBERS key 查看集合中所有元素

SPOP key count 弹出count个元素

SRANDMEMBER key count 随机返回count个元素,默认是1

SREM key value 根据value删除一个或者多个元素

SUNION key1 key2 求key1和key2的并集

SUNIONSTORE key1 key2 key3 将key2和key3的并集存储到key1中

```

Zset命令

zset与set的区别就是有序的,zset会个每个成员元素关联一个double类型的score,redis正式通过score进行对元素进行排序

ZADD  key source value source value2  将一个或者多个元素value添加到有序集合中,

      ZCARD key 获取集合中元素的数量

      ZCOUNT key min max统计集合中score在min至max的元素个数

      ZINCRBY key num value 给指定的value的score增加num

      ZINTERSTORE key3 count key1 key2 将key1和key2的交集存储到key3中

      ZRANGE KEY start stop withscores 返回集合中从start到stop范围的元素,withscores 属于可选参数,如果加了则会同时返回元素的score

Redis的连接命令

Redis的连接命令主要用于验证Redis服务器的连接状态,比如验证客户端与Redis是否连接成功。

Redis是通过Redis序列化协议(简称"resp")实现客户端与服务端之间的连接通信。

该协议主要包括两个部分:  
    网络模型和序列化协议

       网络模型主要负责数据交互的组织方式,序列化协议则实现了数据的序列化。


       主要的流程就是:客户端通过RESP序列化请求服务端,服务端通过RESP序列化相应客户端的请求。


       AUTH 密码  验证密码是否正确

       ECHO 字符串  打印字符串

       PING 查看服务是否运行正常

       QUIT 关闭当前连接
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>