redis的日常操作(1)

一、简介

【概述】

  redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(string,list列表[队列和栈],set[集合],sorted set[有序集合],hash(hash表))。相关参考文档:http://redisdoc.com/index.html

【使用场景】

  1. 登录会话存储:存储在redis中,与memcached相比,数据不会丢失。
  2. 排行版/计数器:比如一些秀场类的项目,经常会有一些前多少名的主播排名。还有一些文章阅读量的技术,或者新浪微博的点赞数等。
  3. 作为消息队列:比如celery就是使用redis作为中间人。
  4. 当前在线人数:还是之前的秀场例子,会显示当前系统有多少在线人数。
  5. 一些常用的数据缓存:比如我们的BBS论坛,板块不会经常变化的,但是每次访问首页都要从mysql中获取,可以在redis中缓存起来,不用每次请求数据库。
  6. 把前200篇文章缓存或者评论缓存:一般用户浏览网站,只会浏览前面一部分文章或者评论,那么可以把前面200篇文章和对应的评论缓存起来。用户访问超过的,就访问数据库,并且以后文章超过200篇,则把之前的文章删除。
  7. 好友关系:微博的好友关系使用redis实现。
  8. 发布和订阅功能:可以用来做聊天软件。

二、redis日常操作命令

【安装】

编译安装  :

安装前要打开httpd(80端口)wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -zxvf redis-5.0.0.tar.gz
yum install gcc            #编译安装
yum install gcc-c++
make                     #编译的时候要cd redis-5.0.0 && make && make install
cp src/redis-server /usr/bin/
cp src/redis-cli /usr/bin/启动:加&后台运行,不加退出就停止运行了。所以要后台运行redis-server &查看服务是否开启ps -ef | grep redis退出kill -9 进程

yum安装

安装
yum install -y redis
重启
systemctl restart redis

【连接】

redis-cli -p 6379 -h 127.0.0.1
6379是redis服务的端口

【添加】

【字符串】:创建时如果不存在直接创建,存在就覆盖旧值;设置过期时间,默认时间永久;时间到了数据自动消失
192.168.42.7:6379> set username jamhsiao
OK
192.168.42.7:6379> set username haha
OK
192.168.42.7:6379> get username
"haha"
192.168.42.7:6379> del username
(integer) 1
192.168.42.7:6379> get username
(nil)
192.168.42.7:6379> set username janhsiao ex 19
OK
192.168.42.7:6379> ttl username   查看过期时间
(integer) 8
192.168.42.7:6379> ttl username
(integer) 0
192.168.42.7:6379> keys *     查看所有的关键字
1) "name"
2) "music"

字符串

【列表】可重复,有序,可以多个添加。添加是如果key不存在,就直接创建;如果存在且不是列表类型,将返回一个错误。
192.168.42.7:6379> lpush book love
(integer) 1
192.168.42.7:6379> lpush book love phy keben
(integer) 4
192.168.42.7:6379> lrange book 0 -1  #0表示头,-1表示尾
1) "keben"
2) "phy"
3) "love"
4) "love"
192.168.42.7:6379> rpush name xiao    与字符串重名,返回错误
(error) WRONGTYPE Operation against a key holding the wrong kind of value
192.168.42.7:6379> lpop book     取头元素
"keben"
192.168.42.7:6379> rpop book     取尾元素,取出列表中就不存在
"love"
192.168.42.7:6379> lindex book 0    下标取值,列表元素依旧存在
"phy"
192.168.42.7:6379> llen book
(integer) 2
192.168.42.7:6379> lrem book 0 phy    删除phy
(integer) 1
192.168.42.7:6379> lrem key count value
count > 0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。
count < 0:从表尾开始向表头搜索,移除与 value相等的元素,数量为count的绝对值。
count = 0:移除表中所有与value 相等的值。

列表

【集合】不能重复,无序,可多个添加
192.168.42.7:6379> sadd user jam hsiao daisy tony tom cat
(integer) 6
192.168.42.7:6379> smembers user
1) "jam"
2) "daisy"
3) "hsiao"
4) "tony"
5) "cat"
6) "tom"
192.168.42.7:6379> srem user tony   删除
(integer) 1
192.168.42.7:6379> scard user    查看个数
(integer) 5
192.168.42.7:6379> sadd username jamhsiao jam tenggege xiao jing teng daisy
(integer) 7
192.168.42.7:6379> sinter user username   交集
1) "daisy"
2) "jam"
192.168.42.7:6379> sunion user username   并集
 1) "cat"
 2) "tom"
 3) "jam"
 4) "daisy"
 5) "hsiao"
 6) "jing"
 7) "jamhsiao"
 8) "xiao"
 9) "tenggege"
10) "teng"
192.168.42.7:6379> sdiff user username   差集,以左边为准
1) "tom"
2) "cat"
3) "hsiao"
192.168.42.7:6379> sdiff username user
1) "xiao"
2) "jamhsiao"
3) "jing"
4) "tenggege"
5) "teng"

集合

【哈希表】key值可以重复,feild不可重复,相当于字典里包含字典
192.168.42.7:6379> hset classes student jam
(integer) 1
192.168.42.7:6379> hset classes student hsiao
(integer) 0
192.168.42.7:6379> hset classes students hsiao
(integer) 1
192.168.42.7:6379> hget classes student
"hsiao"
192.168.42.7:6379> hdel classes student
(integer) 1
192.168.42.7:6379> hgetall classes  查看所有,以字典的形式列出
1) "students"
2) "hsiao"
192.168.42.7:6379> hset classes s jam
(integer) 1
192.168.42.7:6379> hset classes st jam
(integer) 1
192.168.42.7:6379> hset classes stu jam
(integer) 1
192.168.42.7:6379> hset classes stud jam
(integer) 1
192.168.42.7:6379> hset classes stude jam
(integer) 1
192.168.42.7:6379> hgetall classes
 1) "students"
 2) "hsiao"
 3) "s"
 4) "jam"
 5) "st"
 6) "jam"
 7) "stu"
 8) "jam"
 9) "stud"
10) "jam"
11) "stude"
12) "jam"
192.168.42.7:6379> hkeys classes
1) "students"
2) "s"
3) "st"
4) "stu"
5) "stud"
6) "stude"
192.168.42.7:6379> hvals classes
1) "hsiao"
2) "jam"
3) "jam"
4) "jam"
5) "jam"
6) "jam"
192.168.42.7:6379> hlen classes
(integer) 6
192.168.42.7:6379> hdel classes stu
(integer) 1
192.168.42.7:6379> hexists classes student
(integer) 0
192.168.42.7:6379> hexists classes stud
(integer) 1

哈希表

【事务】
开始事务 : multi
执行事务 : exec
回滚事务 : discard

事务

原文地址:https://www.cnblogs.com/daisyyang/p/10874129.html

时间: 2024-10-07 18:51:33

redis的日常操作(1)的相关文章

ORACLE日常操作手册

转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语句写法,适合初学者. 因是很久之前写的,文章中可能会存在不准确的地方,希望指正. ORACLE日常操作手册 目录 一.......数据库的启动和关闭...4 1.   数据库的正常启动步骤...4 2.   数据库的正常关闭步骤...4 3.   几种关闭数据库方法对比...4 4.   数据库的启

git的日常操作

1) 安装Git 2) 配置用户信息 git config --global user.name "username" git config --global user.email "email" git config --global color.ui true 3) 生成公钥对 ssh-keygen –t rsa 在用户的主目录下的.ssh/中,把id_rsa.pub变为username.pub发给管理员 4) clone远程的仓库 git clone [ema

redis的hash操作在集中式session中的应用

在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共享的两大因素: 1. session必须有ha机制,集群中部分服务器发生故障时,保证session不丢失. 2. session的生命周期管理. 3. session的大小未知,整体的序列化和反序列化成本比较高. redis的解决方式 1. redis具有持久化功能,且sentiment具有ha功效

oracle 10g 物理Dataguard 日常操作管理(一)

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. oracle 10g 物理Dataguard 日常操作管理(一)

Oracle 10g 物理Dataguard日常操作维护(二)

3.3进程日志的监控操作 3.3.1 查看备库进程状态 SQL>select process,client_process,sequence#,status from v$managed_standby PROCESS   CLIENT_P  SEQUENCE#    STATUS ---------       --------     ---------- -      ----------- ARCH      ARCH            153       CLOSING ARCH 

Jenkins迁移及日常操作的一点总结

之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使用root用户启动,则主目录为/root/.jenkins [[email protected] ~]# ll -d /root/.jenkins/ drwxr-x--- 14 root root 4096 Dec 18 15:22 /root/.jenkins/ 2)可以在系统环境变量里手动设置j

Redis的相关操作

参考文献:http://www.runoob.com/redis/redis-transactions.html redis下载(Windows安装)D:\downloads\redis>redis-server.exe redis.windows.conf(启动服务)打开另一个cmd终端:D:\downloads\redis>redis-cli(打开本地连接)D:\downloads\redis>redis-cli.exe -h 127.0.0.1 -p 6379(打开远程连接,然后打

redis集群介绍、redis集群搭建配置、redis集群操作

一:redis集群介绍 多个redis节点网络互联,数据共享所有的节点都是一主一从(可以是多个从),其中从不提供服务,仅作为备用不支持同时处理多个键(如mset/mget),因为redis需要把键均匀分布在各个节点上,并发量很高的情况下同时创建键值会降低性能并导致不可预测的行为.支持在线增加.删除节点客户端可以连任何一个主节点进行读写 二:redis集群搭建配置 场景设置:两台机器,分别开启三个Redis服务(端口)A机器上三个端口7000,7002,7004,全部为主B机器上三个端口7001,

缓存数据库-redis数据类型和操作(list)

转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素). List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: 二:列表常用操作 1)lpush(name,values)  在name对应的l