redis的日常操作(1)
一、简介
【概述】
redis
是一种nosql
数据库,他的数据是保存在内存中,同时redis
可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached
支持更多的数据结构(string
,list列表[队列和栈]
,set[集合]
,sorted set[有序集合]
,hash(hash表)
)。相关参考文档:http://redisdoc.com/index.html
【使用场景】
- 登录会话存储:存储在
redis
中,与memcached
相比,数据不会丢失。 - 排行版/计数器:比如一些秀场类的项目,经常会有一些前多少名的主播排名。还有一些文章阅读量的技术,或者新浪微博的点赞数等。
- 作为消息队列:比如
celery
就是使用redis
作为中间人。 - 当前在线人数:还是之前的秀场例子,会显示当前系统有多少在线人数。
- 一些常用的数据缓存:比如我们的
BBS
论坛,板块不会经常变化的,但是每次访问首页都要从mysql
中获取,可以在redis
中缓存起来,不用每次请求数据库。 - 把前200篇文章缓存或者评论缓存:一般用户浏览网站,只会浏览前面一部分文章或者评论,那么可以把前面200篇文章和对应的评论缓存起来。用户访问超过的,就访问数据库,并且以后文章超过200篇,则把之前的文章删除。
- 好友关系:微博的好友关系使用
redis
实现。 - 发布和订阅功能:可以用来做聊天软件。
二、redis日常操作命令
【安装】
编译安装 :
安装前要打开httpd(80端口)
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -zxvf redis-5.0..tar.gz
yum install gcc #编译安装
yum install gcc-c++
make #编译的时候要cd redis-5.0.0 && make PREFIX=/usr/local/redis && make install
mkdir /usr/local/redis5/etc/
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
配置文件
/etc/redis.conf
【连接】
redis-cli -p -h 127.0.0.1
6379是redis服务的端口
【添加】
【字符串】:创建时如果不存在直接创建,存在就覆盖旧值;设置过期时间,默认时间永久;时间到了数据自动消失
192.168.42.7:> set username jamhsiao
OK
192.168.42.7:> set username haha
OK
192.168.42.7:> get username
"haha"
192.168.42.7:> del username
(integer)
192.168.42.7:> get username
(nil)
192.168.42.7:> set username janhsiao ex
OK
192.168.42.7:> ttl username 查看过期时间
(integer)
192.168.42.7:> ttl username
(integer)
192.168.42.7:> keys * 查看所有的关键字
) "name"
) "music"
字符串
【列表】可重复,有序,可以多个添加。添加是如果key不存在,就直接创建;如果存在且不是列表类型,将返回一个错误。
192.168.42.7:> lpush book love
(integer)
192.168.42.7:> lpush book love phy keben
(integer)
192.168.42.7:> lrange book - #0表示头,-1表示尾
) "keben"
) "phy"
) "love"
) "love"
192.168.42.7:> rpush name xiao 与字符串重名,返回错误
(error) WRONGTYPE Operation against a key holding the wrong kind of value
192.168.42.7:> lpop book 取头元素
"keben"
192.168.42.7:> rpop book 取尾元素,取出列表中就不存在
"love"
192.168.42.7:> lindex book 下标取值,列表元素依旧存在
"phy"
192.168.42.7:> llen book
(integer)
192.168.42.7:> lrem book phy 删除phy
(integer)
192.168.42.7:> lrem key count value
count > :从表头开始向表尾搜索,移除与value相等的元素,数量为count。
count < :从表尾开始向表头搜索,移除与 value相等的元素,数量为count的绝对值。
count = :移除表中所有与value 相等的值。
列表
【集合】不能重复,无序,可多个添加
192.168.42.7:> sadd user jam hsiao daisy tony tom cat
(integer)
192.168.42.7:> smembers user
) "jam"
) "daisy"
) "hsiao"
) "tony"
) "cat"
) "tom"
192.168.42.7:> srem user tony 删除
(integer)
192.168.42.7:> scard user 查看个数
(integer)
192.168.42.7:> sadd username jamhsiao jam tenggege xiao jing teng daisy
(integer)
192.168.42.7:> sinter user username 交集
) "daisy"
) "jam"
192.168.42.7:> sunion user username 并集
) "cat"
) "tom"
) "jam"
) "daisy"
) "hsiao"
) "jing"
) "jamhsiao"
) "xiao"
) "tenggege"
) "teng"
192.168.42.7:> sdiff user username 差集,以左边为准
) "tom"
) "cat"
) "hsiao"
192.168.42.7:> sdiff username user
) "xiao"
) "jamhsiao"
) "jing"
) "tenggege"
) "teng"
集合
【哈希表】key值可以重复,feild不可重复,相当于字典里包含字典
192.168.42.7:> hset classes student jam
(integer)
192.168.42.7:> hset classes student hsiao
(integer)
192.168.42.7:> hset classes students hsiao
(integer)
192.168.42.7:> hget classes student
"hsiao"
192.168.42.7:> hdel classes student
(integer)
192.168.42.7:> hgetall classes 查看所有,以字典的形式列出
) "students"
) "hsiao"
192.168.42.7:> hset classes s jam
(integer)
192.168.42.7:> hset classes st jam
(integer)
192.168.42.7:> hset classes stu jam
(integer)
192.168.42.7:> hset classes stud jam
(integer)
192.168.42.7:> hset classes stude jam
(integer)
192.168.42.7:> hgetall classes
) "students"
) "hsiao"
) "s"
) "jam"
) "st"
) "jam"
) "stu"
) "jam"
) "stud"
) "jam"
) "stude"
) "jam"
192.168.42.7:> hkeys classes
) "students"
) "s"
) "st"
) "stu"
) "stud"
) "stude"
192.168.42.7:> hvals classes
) "hsiao"
) "jam"
) "jam"
) "jam"
) "jam"
) "jam"
192.168.42.7:> hlen classes
(integer)
192.168.42.7:> hdel classes stu
(integer)
192.168.42.7:> hexists classes student
(integer)
192.168.42.7:> hexists classes stud
(integer)
哈希表
【事务】
开始事务 : multi
执行事务 : exec
回滚事务 : discard
事务
redis的日常操作(1)的更多相关文章
- redis日常操作
redis针对所有类型的日常操作: keys * ## 取出所有key keys my* ## 模糊匹配 exists name ## 存在name键返回1,否则返回0 del key1 ## 删除一 ...
- Redis Cluster日常操作命令梳理
在之前的一篇文章已经介绍了Redis Cluster及其部署,下面说下Redis Cluster日常操作命令: 一.以下命令是Redis Cluster集群所独有的,执行下面命令需要先登录redis: ...
- redis的一些操作
public class WnsRedisFactory { private static Cache pool = null; private static JedisConnectionFacto ...
- python之redis和memcache操作
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
- redis的hash操作在集中式session中的应用
在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...
- Redis客户端API操作 Jedis详解
redis是一个著名的key-value存储系统,也是nosql中的最常见的一种.其实,个人认为,redis最强大的地方不在于其存储,而在于其强大的缓存作用. 我们可以把它想象成一个巨大的(多借点集群 ...
- Spring Boot 整合 Redis 实现缓存操作
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 产品没有价值,开发团队再优秀也无济于事 – <启示录> 』 本文提纲 ...
- LINUX日常操作二
参见:Linux日常操作一 selinux 开启和关闭 一.查看SELinux状态:1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled ...
- 缓存数据库-redis数据类型和操作(list)
转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...
随机推荐
- QTP(4)
一.常见回放错误 1.The "XXX" XXX object was not found in the Object Repository.(在对象库中未找到对象) ...... ...
- ajax 向php发送请求
<html> <head> <script src="clienthint.js"></script> </head> ...
- Git 基本操作及命令
认证部分 1.配置用户信息 git config --global user.name [username] git config --global user.email [email] 2.查询用户 ...
- XMl特殊字符转换参考
参考链接:https://blog.csdn.net/goon_star/article/details/49636505 处理SVG Text元素不能正确显示特殊字符 特殊符号 命名实体 十进制编码 ...
- 【Python之路】特别篇--Python面向对象(初级篇)
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- .NET面试题系列(二十一)C#中Equals和==的比较
序言 值类型的比较 ; ; Console.WriteLine("Equals和= =(等于号)的比较"); Console.WriteLine("i.Equals(j) ...
- spark-sql cli 参数 及使用
很难找到spark-sql cli使用的教程,总结下一.启动方法/data/spark-1.4.0-bin-cdh4/bin/spark-sql --master spark://master:707 ...
- hadoop yarn日志分离
根据hdfs的auditlog以及fsimage分析,yarn的日志文件占用了10%-20%的rpc请求以及文件量,这对namenode的性能有比较大的影响,特别是当集群规模越来越大,会影响生产业务. ...
- [CSP-S模拟测试]:那一天她里我而去(堆优化Dijkstra)
题目传送门(内部题3) 输入格式 每个测试点有多组测试数据.第一行有一个正整数T表示数据组数.接下来对于每组数据,第一行有两个正整数n,m分别代表图的点数和边数.接下来有m行,每行三个整数u,v,d表 ...
- 修改jupyter notebook的字体等样式
方法一 /lib/site-packages/notebook/static/custom/ 里面有个custom.css文件,你只要修改这个文件就可以了. /* jupyter notebook中显 ...