redis之基础语法

redis

是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。

曾经走过的坑(可以不看下面,但是这一段我感觉是最用心的):

1

 曾经沉迷在Linux上搭建环境,曾经在Linux上搭建了个MySQL和java web的环境并且成功跑起来,开心了好几天,但是实际生活中我感觉写代码比搭建环境更重要,何况你既然能看到我的文章就说明不是大牛,那你搭建的环境就是自己玩玩算了,把重心用在写代码上

2

怎么搭建redis环境(敲黑板,重中之重)

     1) 首先你要有一个能联网,能连接的Linux系统

      2)我用的是宝塔界面 ,官方URL:https://www.bt.cn/      我很笨,我都能用,但是这个插件是真的棒,就是是在Linux上安装一个安装软件的图形界面,类似手机的应用宝

        如果你用的是阿里云服务器,并且你安装了宝塔插件,你需要修改阿里云的安全组,还需要修改宝塔面板的安全选项,才能开放端口,见下面图片

        如果你是虚拟机,那就要开端口6379,在宝塔面板也配置一下,见下面图片

3

我曾经会遇到 一些可以事件解决的问题,却拼命的看博客自己推理,就像这个语法区分大小写吗,试试就知道了,试试就知道了,试试就知道了

4

 学习知识的时候不要太追求完美,比如java里面的String的类,里面有很多分割字符串的方法,没必要全都试一遍,用到在查自然就会了,刚开始学习知识的时候把最常用的学会了我感觉就很棒了

搭建环境(用宝塔面板)

阿里云服务器搭建redis

修改安全组

  

   

修改redis的配置文件

修改redis的密码为 123456(下图是修改以后的)不要看行数,看大体位置

修改运行在别的主机上访问(下图是修改好的)不要看行数,看大体位置

如果是虚拟机

   安装宝塔页面https://www.bt.cn/

   修改配置文件同上

  开放6379端口

        https://blog.csdn.net/qq_37171353/article/details/80040662  我的博客里有写到,请注意看到哪结束

Redis支持五种数据类型:

string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

 

登录

语法:

redis-cli -h host -p port -a password

实践: 

redis-cli -h 127.0.0.1 -p 6379 -a 123456

Redis 字符串(String)

set一个关键字为key1的关键字,其值为value1

127.0.0.1:6379> set key1 value1
OK
127.0.0.1:6379> get key1
"value1"
127.0.0.1:6379> del key1
(integer) 1
127.0.0.1:6379> del key1
(integer) 0
127.0.0.1:6379>

Redis 哈希(Hash)

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。(对于小白来说这是废话)

我认为:

此数据类型和java中的     Map<String, Object> map=new HashMap<String, Object>();         相似

创建

2种创建方式,一种是hset (一次只操作一组key-value),一种hmset(一次可以操作多组key-value)

HSET 哈希表名称   key1  value1

127.0.0.1:6379> HSET set1 name zhangsan

HMSET 哈希表名称   key1  value1 key2  value2

127.0.0.1:6379> HMSET hset1 name zhangsan age 11
OK

获取在哈希表中指定 key 的所有字段和值

127.0.0.1:6379> HGETALL hset1
1) "name"
2) "zhangsan"
3) "age"
4) "11"
127.0.0.1:6379>

 

获取hset1中key为age的value

127.0.0.1:6379> HGET hset1 age
"11"
127.0.0.1:6379>

删除键值对

127.0.0.1:6379> HDEL hset1 name
(integer) 1
127.0.0.1:6379>

查看hset1中是否有key为name的键值对

127.0.0.1:6379> HEXISTS hset1 name
(integer) 0
127.0.0.1:6379>

获取key列表

127.0.0.1:6379> HKEYS hset1
1) "age"
2) "name1"
3) "name2"

Redis 列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

我认为: 和java中的        List<String> list=new ArrayList<String>();            相似

基本操作

LPUSH   在list1中的左边添加zhangsan关键字,返回列表的长度

127.0.0.1:6379> LPUSH list1 zhangsan
(integer) 1

RPUSH   在list1中的右边边添加llisi关键字,返回列表的长度

127.0.0.1:6379> RPUSH list1 lisi
(integer) 2

LPOP 在左边移除,移除,移除并获取列表的第一个元素,RPOP一样

127.0.0.1:6379> LPOP list1
"111"

查看列表里面所有的数据

127.0.0.1:6379> LRANGE list1 0 -1
1) "zhangsan"
2) "lisi"

Redis 集合(Set)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

SADD set集合名词  value

127.0.0.1:6379> SADD set1 zhangsan
(integer) 1

获取set里面的所有数据 

  SMEMBERS set集合名称

127.0.0.1:6379> SMEMBERS set1
1) "zhangsan"

查看set集合里面所有的数据

127.0.0.1:6379> SMEMBERS set1
1) "zhangsan"

判断 zhangsan元素是否是集合 set1 的成员

127.0.0.1:6379> SISMEMBER set1 zhangsan
(integer) 1
127.0.0.1:6379> SISMEMBER set1 lisi
(integer) 0

Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

添加数据

127.0.0.1:6379> ZADD sset1 1 zhangsan
(integer) 1
127.0.0.1:6379> ZADD sset1 2 lisi
(integer) 1
127.0.0.1:6379> ZADD sset1 2 lisi2
(integer) 1
127.0.0.1:6379> ZADD sset1 3 wangwu
(integer) 1

显示数据

127.0.0.1:6379> ZRANGE sset1 0 -1
1) "zhangsan"
2) "lisi"
3) "lisi2"
4) "wangwu"
127.0.0.1:6379> ZRANGE sset1 0 -1 WITHSCORES
1) "zhangsan"
2) "1"
3) "lisi"
4) "2"
5) "lisi2"
6) "2"
7) "wangwu"
8) "3"
127.0.0.1:6379>

猜你喜欢

转载自blog.csdn.net/qq_37171353/article/details/85009766